Loading js/src/jit/BaselineIC.cpp +7 −5 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ #include "vm/BytecodeIterator.h" #include "vm/BytecodeLocation.h" #include "vm/BytecodeUtil.h" #include "vm/EqualityOperations.h" #include "vm/JSFunction.h" #include "vm/JSScript.h" #include "vm/Opcodes.h" Loading Loading @@ -2558,25 +2559,26 @@ bool DoCompareFallback(JSContext* cx, BaselineFrame* frame, } break; case JSOp::Eq: if (!LooselyEqual<EqualityKind::Equal>(cx, &lhsCopy, &rhsCopy, &out)) { if (!js::LooselyEqual(cx, lhsCopy, rhsCopy, &out)) { return false; } break; case JSOp::Ne: if (!LooselyEqual<EqualityKind::NotEqual>(cx, &lhsCopy, &rhsCopy, &out)) { if (!js::LooselyEqual(cx, lhsCopy, rhsCopy, &out)) { return false; } out = !out; break; case JSOp::StrictEq: if (!StrictlyEqual<EqualityKind::Equal>(cx, &lhsCopy, &rhsCopy, &out)) { if (!js::StrictlyEqual(cx, lhsCopy, rhsCopy, &out)) { return false; } break; case JSOp::StrictNe: if (!StrictlyEqual<EqualityKind::NotEqual>(cx, &lhsCopy, &rhsCopy, &out)) { if (!js::StrictlyEqual(cx, lhsCopy, rhsCopy, &out)) { return false; } out = !out; break; default: MOZ_ASSERT_UNREACHABLE("Unhandled baseline compare op"); Loading js/src/jit/IonIC.cpp +7 −4 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ #include "jit/CacheIRCompiler.h" #include "jit/VMFunctions.h" #include "util/DiagnosticAssertions.h" #include "vm/EqualityOperations.h" #include "jit/MacroAssembler-inl.h" #include "vm/Interpreter-inl.h" Loading Loading @@ -653,24 +654,26 @@ bool IonCompareIC::update(JSContext* cx, HandleScript outerScript, } break; case JSOp::Eq: if (!LooselyEqual<EqualityKind::Equal>(cx, &lhsCopy, &rhsCopy, res)) { if (!js::LooselyEqual(cx, lhsCopy, rhsCopy, res)) { return false; } break; case JSOp::Ne: if (!LooselyEqual<EqualityKind::NotEqual>(cx, &lhsCopy, &rhsCopy, res)) { if (!js::LooselyEqual(cx, lhsCopy, rhsCopy, res)) { return false; } *res = !*res; break; case JSOp::StrictEq: if (!StrictlyEqual<EqualityKind::Equal>(cx, &lhsCopy, &rhsCopy, res)) { if (!js::StrictlyEqual(cx, lhsCopy, rhsCopy, res)) { return false; } break; case JSOp::StrictNe: if (!StrictlyEqual<EqualityKind::NotEqual>(cx, &lhsCopy, &rhsCopy, res)) { if (!js::StrictlyEqual(cx, lhsCopy, rhsCopy, res)) { return false; } *res = !*res; break; default: MOZ_ASSERT_UNREACHABLE("Unhandled ion compare op"); Loading js/src/jit/VMFunctions.cpp +0 −43 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ #include "js/friend/WindowProxy.h" // js::IsWindow #include "js/Printf.h" #include "vm/ArrayObject.h" #include "vm/EqualityOperations.h" // js::StrictlyEqual #include "vm/Interpreter.h" #include "vm/PlainObject.h" // js::PlainObject #include "vm/SelfHosting.h" Loading Loading @@ -822,48 +821,6 @@ bool MutatePrototype(JSContext* cx, HandlePlainObject obj, HandleValue value) { return SetPrototype(cx, obj, newProto); } template <EqualityKind Kind> bool LooselyEqual(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res) { if (!js::LooselyEqual(cx, lhs, rhs, res)) { return false; } if (Kind != EqualityKind::Equal) { *res = !*res; } return true; } template bool LooselyEqual<EqualityKind::Equal>(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res); template bool LooselyEqual<EqualityKind::NotEqual>(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res); template <EqualityKind Kind> bool StrictlyEqual(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res) { if (!js::StrictlyEqual(cx, lhs, rhs, res)) { return false; } if (Kind != EqualityKind::Equal) { *res = !*res; } return true; } template bool StrictlyEqual<EqualityKind::Equal>(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res); template bool StrictlyEqual<EqualityKind::NotEqual>(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res); template <EqualityKind Kind> bool StringsEqual(JSContext* cx, HandleString lhs, HandleString rhs, bool* res) { Loading js/src/jit/VMFunctions.h +0 −8 Original line number Diff line number Diff line Loading @@ -364,14 +364,6 @@ bool CheckOverRecursedBaseline(JSContext* cx, BaselineFrame* frame); enum class EqualityKind : bool { NotEqual, Equal }; template <EqualityKind Kind> bool LooselyEqual(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res); template <EqualityKind Kind> bool StrictlyEqual(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res); template <EqualityKind Kind> bool StringsEqual(JSContext* cx, HandleString lhs, HandleString rhs, bool* res); Loading Loading
js/src/jit/BaselineIC.cpp +7 −5 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ #include "vm/BytecodeIterator.h" #include "vm/BytecodeLocation.h" #include "vm/BytecodeUtil.h" #include "vm/EqualityOperations.h" #include "vm/JSFunction.h" #include "vm/JSScript.h" #include "vm/Opcodes.h" Loading Loading @@ -2558,25 +2559,26 @@ bool DoCompareFallback(JSContext* cx, BaselineFrame* frame, } break; case JSOp::Eq: if (!LooselyEqual<EqualityKind::Equal>(cx, &lhsCopy, &rhsCopy, &out)) { if (!js::LooselyEqual(cx, lhsCopy, rhsCopy, &out)) { return false; } break; case JSOp::Ne: if (!LooselyEqual<EqualityKind::NotEqual>(cx, &lhsCopy, &rhsCopy, &out)) { if (!js::LooselyEqual(cx, lhsCopy, rhsCopy, &out)) { return false; } out = !out; break; case JSOp::StrictEq: if (!StrictlyEqual<EqualityKind::Equal>(cx, &lhsCopy, &rhsCopy, &out)) { if (!js::StrictlyEqual(cx, lhsCopy, rhsCopy, &out)) { return false; } break; case JSOp::StrictNe: if (!StrictlyEqual<EqualityKind::NotEqual>(cx, &lhsCopy, &rhsCopy, &out)) { if (!js::StrictlyEqual(cx, lhsCopy, rhsCopy, &out)) { return false; } out = !out; break; default: MOZ_ASSERT_UNREACHABLE("Unhandled baseline compare op"); Loading
js/src/jit/IonIC.cpp +7 −4 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ #include "jit/CacheIRCompiler.h" #include "jit/VMFunctions.h" #include "util/DiagnosticAssertions.h" #include "vm/EqualityOperations.h" #include "jit/MacroAssembler-inl.h" #include "vm/Interpreter-inl.h" Loading Loading @@ -653,24 +654,26 @@ bool IonCompareIC::update(JSContext* cx, HandleScript outerScript, } break; case JSOp::Eq: if (!LooselyEqual<EqualityKind::Equal>(cx, &lhsCopy, &rhsCopy, res)) { if (!js::LooselyEqual(cx, lhsCopy, rhsCopy, res)) { return false; } break; case JSOp::Ne: if (!LooselyEqual<EqualityKind::NotEqual>(cx, &lhsCopy, &rhsCopy, res)) { if (!js::LooselyEqual(cx, lhsCopy, rhsCopy, res)) { return false; } *res = !*res; break; case JSOp::StrictEq: if (!StrictlyEqual<EqualityKind::Equal>(cx, &lhsCopy, &rhsCopy, res)) { if (!js::StrictlyEqual(cx, lhsCopy, rhsCopy, res)) { return false; } break; case JSOp::StrictNe: if (!StrictlyEqual<EqualityKind::NotEqual>(cx, &lhsCopy, &rhsCopy, res)) { if (!js::StrictlyEqual(cx, lhsCopy, rhsCopy, res)) { return false; } *res = !*res; break; default: MOZ_ASSERT_UNREACHABLE("Unhandled ion compare op"); Loading
js/src/jit/VMFunctions.cpp +0 −43 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ #include "js/friend/WindowProxy.h" // js::IsWindow #include "js/Printf.h" #include "vm/ArrayObject.h" #include "vm/EqualityOperations.h" // js::StrictlyEqual #include "vm/Interpreter.h" #include "vm/PlainObject.h" // js::PlainObject #include "vm/SelfHosting.h" Loading Loading @@ -822,48 +821,6 @@ bool MutatePrototype(JSContext* cx, HandlePlainObject obj, HandleValue value) { return SetPrototype(cx, obj, newProto); } template <EqualityKind Kind> bool LooselyEqual(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res) { if (!js::LooselyEqual(cx, lhs, rhs, res)) { return false; } if (Kind != EqualityKind::Equal) { *res = !*res; } return true; } template bool LooselyEqual<EqualityKind::Equal>(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res); template bool LooselyEqual<EqualityKind::NotEqual>(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res); template <EqualityKind Kind> bool StrictlyEqual(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res) { if (!js::StrictlyEqual(cx, lhs, rhs, res)) { return false; } if (Kind != EqualityKind::Equal) { *res = !*res; } return true; } template bool StrictlyEqual<EqualityKind::Equal>(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res); template bool StrictlyEqual<EqualityKind::NotEqual>(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res); template <EqualityKind Kind> bool StringsEqual(JSContext* cx, HandleString lhs, HandleString rhs, bool* res) { Loading
js/src/jit/VMFunctions.h +0 −8 Original line number Diff line number Diff line Loading @@ -364,14 +364,6 @@ bool CheckOverRecursedBaseline(JSContext* cx, BaselineFrame* frame); enum class EqualityKind : bool { NotEqual, Equal }; template <EqualityKind Kind> bool LooselyEqual(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res); template <EqualityKind Kind> bool StrictlyEqual(JSContext* cx, MutableHandleValue lhs, MutableHandleValue rhs, bool* res); template <EqualityKind Kind> bool StringsEqual(JSContext* cx, HandleString lhs, HandleString rhs, bool* res); Loading