Implement TypedArray.prototype.toReversed (#198)
This commit is contained in:
parent
baf50f9236
commit
05f00a87f7
2 changed files with 23 additions and 14 deletions
23
quickjs.c
23
quickjs.c
|
@ -1146,6 +1146,10 @@ static JSValue js_typed_array_constructor(JSContext *ctx,
|
||||||
JSValue this_val,
|
JSValue this_val,
|
||||||
int argc, JSValue *argv,
|
int argc, JSValue *argv,
|
||||||
int classid);
|
int classid);
|
||||||
|
static JSValue js_typed_array_constructor_ta(JSContext *ctx,
|
||||||
|
JSValue new_target,
|
||||||
|
JSValue src_obj,
|
||||||
|
int classid);
|
||||||
static BOOL typed_array_is_detached(JSContext *ctx, JSObject *p);
|
static BOOL typed_array_is_detached(JSContext *ctx, JSObject *p);
|
||||||
static uint32_t typed_array_get_length(JSContext *ctx, JSObject *p);
|
static uint32_t typed_array_get_length(JSContext *ctx, JSObject *p);
|
||||||
static JSValue JS_ThrowTypeErrorDetachedArrayBuffer(JSContext *ctx);
|
static JSValue JS_ThrowTypeErrorDetachedArrayBuffer(JSContext *ctx);
|
||||||
|
@ -49144,6 +49148,24 @@ static JSValue js_typed_array_reverse(JSContext *ctx, JSValue this_val,
|
||||||
return js_dup(this_val);
|
return js_dup(this_val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static JSValue js_typed_array_toReversed(JSContext *ctx, JSValue this_val,
|
||||||
|
int argc, JSValue *argv)
|
||||||
|
{
|
||||||
|
JSValue arr, ret;
|
||||||
|
JSObject *p;
|
||||||
|
|
||||||
|
p = get_typed_array(ctx, this_val, /*is_dataview*/0);
|
||||||
|
if (!p)
|
||||||
|
return JS_EXCEPTION;
|
||||||
|
arr = js_typed_array_constructor_ta(ctx, JS_UNDEFINED, this_val,
|
||||||
|
p->class_id);
|
||||||
|
if (JS_IsException(arr))
|
||||||
|
return JS_EXCEPTION;
|
||||||
|
ret = js_typed_array_reverse(ctx, arr, argc, argv);
|
||||||
|
JS_FreeValue(ctx, arr);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static JSValue js_typed_array_slice(JSContext *ctx, JSValue this_val,
|
static JSValue js_typed_array_slice(JSContext *ctx, JSValue this_val,
|
||||||
int argc, JSValue *argv)
|
int argc, JSValue *argv)
|
||||||
{
|
{
|
||||||
|
@ -49572,6 +49594,7 @@ static const JSCFunctionListEntry js_typed_array_base_proto_funcs[] = {
|
||||||
JS_CFUNC_MAGIC_DEF("findLast", 1, js_typed_array_find, ArrayFindLast ),
|
JS_CFUNC_MAGIC_DEF("findLast", 1, js_typed_array_find, ArrayFindLast ),
|
||||||
JS_CFUNC_MAGIC_DEF("findLastIndex", 1, js_typed_array_find, ArrayFindLastIndex ),
|
JS_CFUNC_MAGIC_DEF("findLastIndex", 1, js_typed_array_find, ArrayFindLastIndex ),
|
||||||
JS_CFUNC_DEF("reverse", 0, js_typed_array_reverse ),
|
JS_CFUNC_DEF("reverse", 0, js_typed_array_reverse ),
|
||||||
|
JS_CFUNC_DEF("toReversed", 0, js_typed_array_toReversed ),
|
||||||
JS_CFUNC_DEF("slice", 2, js_typed_array_slice ),
|
JS_CFUNC_DEF("slice", 2, js_typed_array_slice ),
|
||||||
JS_CFUNC_DEF("subarray", 2, js_typed_array_subarray ),
|
JS_CFUNC_DEF("subarray", 2, js_typed_array_subarray ),
|
||||||
JS_CFUNC_DEF("sort", 1, js_typed_array_sort ),
|
JS_CFUNC_DEF("sort", 1, js_typed_array_sort ),
|
||||||
|
|
|
@ -7,20 +7,6 @@ test262/test/built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-
|
||||||
test262/test/built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-no-throw.js:30: strict mode: TypeError: out-of-bound numeric index (Testing with Float64Array.)
|
test262/test/built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-no-throw.js:30: strict mode: TypeError: out-of-bound numeric index (Testing with Float64Array.)
|
||||||
test262/test/built-ins/TypedArray/prototype/sort/sort-tonumber.js:30: TypeError: ArrayBuffer is detached (Testing with Float64Array.)
|
test262/test/built-ins/TypedArray/prototype/sort/sort-tonumber.js:30: TypeError: ArrayBuffer is detached (Testing with Float64Array.)
|
||||||
test262/test/built-ins/TypedArray/prototype/sort/sort-tonumber.js:30: strict mode: TypeError: ArrayBuffer is detached (Testing with Float64Array.)
|
test262/test/built-ins/TypedArray/prototype/sort/sort-tonumber.js:30: strict mode: TypeError: ArrayBuffer is detached (Testing with Float64Array.)
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/ignores-species.js:26: TypeError: not a function (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/ignores-species.js:26: strict mode: TypeError: not a function (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/immutable.js:14: TypeError: not a function (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/immutable.js:14: strict mode: TypeError: not a function (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/length-property-ignored.js:21: TypeError: not a function (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/length-property-ignored.js:21: strict mode: TypeError: not a function (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/metadata/length.js:30: TypeError: cannot convert to object
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/metadata/length.js:30: strict mode: TypeError: cannot convert to object
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/metadata/name.js:28: TypeError: cannot convert to object
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/metadata/name.js:28: strict mode: TypeError: cannot convert to object
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/metadata/property-descriptor.js:18: Test262Error: typeof Expected SameValue(«undefined», «function») to be true
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/metadata/property-descriptor.js:18: strict mode: Test262Error: typeof Expected SameValue(«undefined», «function») to be true
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/not-a-constructor.js:25: Test262Error: isConstructor invoked with a non-function value
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toReversed/not-a-constructor.js:25: strict mode: Test262Error: isConstructor invoked with a non-function value
|
|
||||||
test262/test/built-ins/TypedArray/prototype/toSorted/ignores-species.js:26: TypeError: not a function (Testing with Float64Array.)
|
test262/test/built-ins/TypedArray/prototype/toSorted/ignores-species.js:26: TypeError: not a function (Testing with Float64Array.)
|
||||||
test262/test/built-ins/TypedArray/prototype/toSorted/ignores-species.js:26: strict mode: TypeError: not a function (Testing with Float64Array.)
|
test262/test/built-ins/TypedArray/prototype/toSorted/ignores-species.js:26: strict mode: TypeError: not a function (Testing with Float64Array.)
|
||||||
test262/test/built-ins/TypedArray/prototype/toSorted/immutable.js:14: TypeError: not a function (Testing with Float64Array.)
|
test262/test/built-ins/TypedArray/prototype/toSorted/immutable.js:14: TypeError: not a function (Testing with Float64Array.)
|
||||||
|
|
Loading…
Reference in a new issue