diff --git a/ecmascript/builtins/builtins_typedarray.cpp b/ecmascript/builtins/builtins_typedarray.cpp index 020c7af72a3ba19f3e2a270aeb8d2add710a56bc..6622e5da7831978dfd478783017e54ee6a0c2f7b 100644 --- a/ecmascript/builtins/builtins_typedarray.cpp +++ b/ecmascript/builtins/builtins_typedarray.cpp @@ -968,6 +968,11 @@ JSTaggedValue BuiltinsTypedArray::Map(EcmaRuntimeCallInfo *argv) JSTaggedValue callResult = JSFunction::Call(info); mapValue.Update(callResult); RETURN_EXCEPTION_IF_ABRUPT_COMPLETION(thread); + JSTaggedValue buffer = JSHandle::Cast(newArrObj)->GetViewedArrayBufferOrByteArray(); + if (BuiltinsArrayBuffer::IsDetachedBuffer(buffer)) { + THROW_TYPE_ERROR_AND_RETURN(argv->GetThread(), "The ArrayBuffer of typedArray is detached buffer.", + JSTaggedValue::Exception()); + } ObjectFastOperator::FastSetPropertyByValue(thread, newArrObj.GetTaggedValue(), key.GetTaggedValue(), mapValue.GetTaggedValue()); RETURN_EXCEPTION_IF_ABRUPT_COMPLETION(thread); diff --git a/test/regresstest/regresstest_skip_tests.json b/test/regresstest/regresstest_skip_tests.json index 0983e1afc517f52415096b1b18446ee21dc11fbd..7c3727c206969a57ff030b8cfa49a2170f4a07b5 100644 --- a/test/regresstest/regresstest_skip_tests.json +++ b/test/regresstest/regresstest_skip_tests.json @@ -3016,7 +3016,6 @@ "mjsunit/es6/string-iterator7.js", "mjsunit/es6/string-iterator3.js", "mjsunit/es6/for-each-in-catch.js", - "mjsunit/es6/typedarray-map.js", "mjsunit/es6/rest-params.js", "mjsunit/es6/block-for-sloppy.js", "mjsunit/es6/computed-property-names-classes.js",