From f3fe844d0a622c77424739f993e0865114fe3ba7 Mon Sep 17 00:00:00 2001 From: liujia178 Date: Tue, 16 Apr 2024 20:33:03 +1030 Subject: [PATCH] If IsDetachedBuffer expected TypeError --- ecmascript/builtins/builtins_typedarray.cpp | 7 +++++++ test/regresstest/regresstest_skip_tests.json | 1 - 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ecmascript/builtins/builtins_typedarray.cpp b/ecmascript/builtins/builtins_typedarray.cpp index 020c7af72..c93177308 100644 --- a/ecmascript/builtins/builtins_typedarray.cpp +++ b/ecmascript/builtins/builtins_typedarray.cpp @@ -1052,6 +1052,13 @@ JSTaggedValue BuiltinsTypedArray::Reverse(EcmaRuntimeCallInfo *argv) upperValueHandle = JSArray::FastGetPropertyByValue(thread, thisObjVal, upperP); JSArray::FastSetPropertyByValue(thread, thisObjVal, lowerP, upperValueHandle); RETURN_EXCEPTION_IF_ABRUPT_COMPLETION(thread); + + JSTaggedValue buffer = JSHandle::Cast(thisObjVal)->GetViewedArrayBufferOrByteArray(); + if (BuiltinsArrayBuffer::IsDetachedBuffer(buffer)) { + THROW_TYPE_ERROR_AND_RETURN(argv->GetThread(), "The ArrayBuffer of typedArray is detached buffer.", + JSTaggedValue::Exception()); + } + JSArray::FastSetPropertyByValue(thread, thisObjVal, upperP, lowerValueHandle); RETURN_EXCEPTION_IF_ABRUPT_COMPLETION(thread); lower++; diff --git a/test/regresstest/regresstest_skip_tests.json b/test/regresstest/regresstest_skip_tests.json index 0983e1afc..e2e621cc3 100644 --- a/test/regresstest/regresstest_skip_tests.json +++ b/test/regresstest/regresstest_skip_tests.json @@ -3122,7 +3122,6 @@ "mjsunit/es6/symbols.js", "mjsunit/es6/string-html.js", "mjsunit/es6/array-iterator.js", - "mjsunit/es6/typedarray-reverse.js", "mjsunit/es6/map-iterator-9.js", "mjsunit/es6/default-parameters-destructuring.js", "mjsunit/es6/call-with-spread-modify-next.js", -- Gitee