From 3fbe144762f329a30825833cf83794228f062d91 Mon Sep 17 00:00:00 2001 From: liujia178 Date: Tue, 16 Apr 2024 21:04:55 +1030 Subject: [PATCH] JSFunction::Call is repeatedly called --- ecmascript/js_tagged_value.cpp | 23 +++++++++++++++----- test/regresstest/regresstest_skip_tests.json | 1 - 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/ecmascript/js_tagged_value.cpp b/ecmascript/js_tagged_value.cpp index abed03470..dfaa8de5b 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 0983e1afc..212570719 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", -- Gitee