diff --git a/ecmascript/js_tagged_value.cpp b/ecmascript/js_tagged_value.cpp index abed03470ae7cd9a95f8128833784878403c5acb..dfaa8de5bda6ec2cd87b12cac561b5a175f0ffb9 100644 --- a/ecmascript/js_tagged_value.cpp +++ b/ecmascript/js_tagged_value.cpp @@ -426,11 +426,24 @@ ComparisonResult JSTaggedValue::Compare(JSThread *thread, const JSHandleIsNumber()) { + resultX = primX->GetNumber(); + } else { + JSTaggedNumber xNumber = ToNumber(thread, x); + RETURN_VALUE_IF_ABRUPT_COMPLETION(thread, ComparisonResult::UNDEFINED); + resultX = xNumber.GetNumber(); + } + if (y.GetTaggedValue().IsECMAObject() && primY->IsNumber()) { + resultY = primY->GetNumber(); + } else { + JSTaggedNumber yNumber = ToNumber(thread, y); + RETURN_VALUE_IF_ABRUPT_COMPLETION(thread, ComparisonResult::UNDEFINED); + resultY = yNumber.GetNumber(); + } + return StrictNumberCompare(resultX, resultY); } bool JSTaggedValue::IsSameTypeOrHClass(JSTaggedValue x, JSTaggedValue y) diff --git a/test/regresstest/regresstest_skip_tests.json b/test/regresstest/regresstest_skip_tests.json index 0983e1afc517f52415096b1b18446ee21dc11fbd..2125707195b4e3ad03844954b7ac97566eaf24a3 100644 --- a/test/regresstest/regresstest_skip_tests.json +++ b/test/regresstest/regresstest_skip_tests.json @@ -1729,7 +1729,6 @@ "mjsunit/lazy-inner-functions.js", "mjsunit/globals.js", "mjsunit/ic-megadom-2.js", - "mjsunit/to_number_order.js", "mjsunit/string-replace-with-empty.js", "mjsunit/deep-recursion.js", "mjsunit/arguments-load-across-eval.js",