Symbol.species is no longer used in TypedArray constructor from a TypedArray

This commit is contained in:
Fabrice Bellard 2023-12-09 12:32:00 +01:00 committed by Ben Noordhuis
parent 46996ff258
commit e8b97048d4
2 changed files with 2 additions and 14 deletions

View file

@ -49716,7 +49716,7 @@ static JSValue js_typed_array_constructor_ta(JSContext *ctx,
{ {
JSObject *p, *src_buffer; JSObject *p, *src_buffer;
JSTypedArray *ta; JSTypedArray *ta;
JSValue ctor, obj, buffer; JSValue obj, buffer;
uint32_t len, i; uint32_t len, i;
int size_log2; int size_log2;
JSArrayBuffer *src_abuf, *abuf; JSArrayBuffer *src_abuf, *abuf;
@ -49733,19 +49733,9 @@ static JSValue js_typed_array_constructor_ta(JSContext *ctx,
len = p->u.array.count; len = p->u.array.count;
src_buffer = ta->buffer; src_buffer = ta->buffer;
src_abuf = src_buffer->u.array_buffer; src_abuf = src_buffer->u.array_buffer;
if (!src_abuf->shared) {
ctor = JS_SpeciesConstructor(ctx, JS_MKPTR(JS_TAG_OBJECT, src_buffer),
JS_UNDEFINED);
if (JS_IsException(ctor))
goto fail;
} else {
/* force ArrayBuffer default constructor */
ctor = JS_UNDEFINED;
}
size_log2 = typed_array_size_log2(classid); size_log2 = typed_array_size_log2(classid);
buffer = js_array_buffer_constructor1(ctx, ctor, buffer = js_array_buffer_constructor1(ctx, JS_UNDEFINED,
(uint64_t)len << size_log2); (uint64_t)len << size_log2);
JS_FreeValue(ctx, ctor);
if (JS_IsException(buffer)) if (JS_IsException(buffer))
goto fail; goto fail;
/* necessary because it could have been detached */ /* necessary because it could have been detached */

View file

@ -61,8 +61,6 @@ test262/test/built-ins/TypedArray/prototype/with/metadata/property-descriptor.js
test262/test/built-ins/TypedArray/prototype/with/metadata/property-descriptor.js:18: strict mode: Test262Error: typeof Expected SameValue(«undefined», «function») to be true test262/test/built-ins/TypedArray/prototype/with/metadata/property-descriptor.js:18: strict mode: Test262Error: typeof Expected SameValue(«undefined», «function») to be true
test262/test/built-ins/TypedArray/prototype/with/not-a-constructor.js:25: Test262Error: isConstructor invoked with a non-function value test262/test/built-ins/TypedArray/prototype/with/not-a-constructor.js:25: Test262Error: isConstructor invoked with a non-function value
test262/test/built-ins/TypedArray/prototype/with/not-a-constructor.js:25: strict mode: Test262Error: isConstructor invoked with a non-function value test262/test/built-ins/TypedArray/prototype/with/not-a-constructor.js:25: strict mode: Test262Error: isConstructor invoked with a non-function value
test262/test/built-ins/TypedArrayConstructors/ctors/no-species.js:16: Test262Error: unreachable
test262/test/built-ins/TypedArrayConstructors/ctors/no-species.js:16: strict mode: Test262Error: unreachable
test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer.js:46: Test262Error: (Testing with BigInt64Array.) test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer.js:46: Test262Error: (Testing with BigInt64Array.)
test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer.js:46: strict mode: Test262Error: (Testing with BigInt64Array.) test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer.js:46: strict mode: Test262Error: (Testing with BigInt64Array.)
test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/tonumber-value-detached-buffer.js:40: Test262Error: Reflect.defineProperty(ta, 0, {value: {valueOf() {$DETACHBUFFER(ta.buffer); return 42n;}}}) must return true Expected SameValue(«false», «true») to be true (Testing with BigInt64Array.) test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/tonumber-value-detached-buffer.js:40: Test262Error: Reflect.defineProperty(ta, 0, {value: {valueOf() {$DETACHBUFFER(ta.buffer); return 42n;}}}) must return true Expected SameValue(«false», «true») to be true (Testing with BigInt64Array.)