diff --git a/ecmascript/builtins/builtins_typedarray.cpp b/ecmascript/builtins/builtins_typedarray.cpp index 020c7af72a3ba19f3e2a270aeb8d2add710a56bc..c93177308008440d0e5c25464ef5575fa9a2f4ef 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 0983e1afc517f52415096b1b18446ee21dc11fbd..e2e621cc3ee1228b9c47be36caf5216e5cd71893 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",