diff --git a/src/js/typedarray.js b/src/js/typedarray.js index 18f6dde299..6c858236a8 100644 --- a/src/js/typedarray.js +++ b/src/js/typedarray.js @@ -827,12 +827,11 @@ utils.InstallFunctions(TypedArray, DONT_ENUM, [ "of", TypedArrayOf ]); utils.InstallGetter(TypedArray.prototype, "buffer", TypedArrayGetBuffer); -utils.InstallGetter(TypedArray.prototype, "byteOffset", TypedArrayGetByteOffset, - DONT_ENUM | DONT_DELETE); +utils.InstallGetter(TypedArray.prototype, "byteOffset", + TypedArrayGetByteOffset); utils.InstallGetter(TypedArray.prototype, "byteLength", - TypedArrayGetByteLength, DONT_ENUM | DONT_DELETE); -utils.InstallGetter(TypedArray.prototype, "length", TypedArrayGetLength, - DONT_ENUM | DONT_DELETE); + TypedArrayGetByteLength); +utils.InstallGetter(TypedArray.prototype, "length", TypedArrayGetLength); utils.InstallGetter(TypedArray.prototype, toStringTagSymbol, TypedArrayGetToStringTag); utils.InstallFunctions(TypedArray.prototype, DONT_ENUM, [ diff --git a/test/mjsunit/regress/regress-typedarray-length.js b/test/mjsunit/regress/regress-typedarray-length.js index a0b99980c7..0dde61fc27 100644 --- a/test/mjsunit/regress/regress-typedarray-length.js +++ b/test/mjsunit/regress/regress-typedarray-length.js @@ -108,13 +108,13 @@ assertEquals(undefined, get(a)); assertEquals("blah", get(a)); })(); -// Ensure we cannot delete length, byteOffset, byteLength. +// Ensure we can delete length, byteOffset, byteLength. assertTrue(Int32Array.prototype.__proto__.hasOwnProperty("length")); assertTrue(Int32Array.prototype.__proto__.hasOwnProperty("byteOffset")); assertTrue(Int32Array.prototype.__proto__.hasOwnProperty("byteLength")); -assertFalse(delete Int32Array.prototype.__proto__.length); -assertFalse(delete Int32Array.prototype.__proto__.byteOffset); -assertFalse(delete Int32Array.prototype.__proto__.byteLength); +assertTrue(delete Int32Array.prototype.__proto__.length); +assertTrue(delete Int32Array.prototype.__proto__.byteOffset); +assertTrue(delete Int32Array.prototype.__proto__.byteLength); a = new Int32Array(100); @@ -122,28 +122,28 @@ get = function(a) { return a.length; } -assertEquals(100, get(a)); -assertEquals(100, get(a)); -assertEquals(100, get(a)); +assertEquals(undefined, get(a)); +assertEquals(undefined, get(a)); +assertEquals(undefined, get(a)); %OptimizeFunctionOnNextCall(get); -assertEquals(100, get(a)); +assertEquals(undefined, get(a)); get = function(a) { return a.byteLength; } -assertEquals(400, get(a)); -assertEquals(400, get(a)); -assertEquals(400, get(a)); +assertEquals(undefined, get(a)); +assertEquals(undefined, get(a)); +assertEquals(undefined, get(a)); %OptimizeFunctionOnNextCall(get); -assertEquals(400, get(a)); +assertEquals(undefined, get(a)); get = function(a) { return a.byteOffset; } -assertEquals(0, get(a)); -assertEquals(0, get(a)); -assertEquals(0, get(a)); +assertEquals(undefined, get(a)); +assertEquals(undefined, get(a)); +assertEquals(undefined, get(a)); %OptimizeFunctionOnNextCall(get); -assertEquals(0, get(a)); +assertEquals(undefined, get(a)); diff --git a/test/test262/test262.status b/test/test262/test262.status index 3fd137f646..6dda9d4e72 100644 --- a/test/test262/test262.status +++ b/test/test262/test262.status @@ -233,20 +233,6 @@ # https://bugs.chromium.org/p/v8/issues/detail?id=4034 'built-ins/ThrowTypeError/unique-per-realm-function-proto': [FAIL], - # https://bugs.chromium.org/p/v8/issues/detail?id=4902 - 'built-ins/TypedArray/prototype/byteLength/prop-desc': [FAIL], - 'built-ins/TypedArray/prototype/byteOffset/prop-desc': [FAIL], - 'built-ins/TypedArray/prototype/copyWithin/get-length-ignores-length-prop': [FAIL], - 'built-ins/TypedArray/prototype/every/get-length-ignores-length-prop': [FAIL], - 'built-ins/TypedArray/prototype/every/get-length-uses-internal-arraylength': [FAIL], - 'built-ins/TypedArray/prototype/fill/get-length-ignores-length-prop': [FAIL], - 'built-ins/TypedArray/prototype/find/get-length-ignores-length-prop': [FAIL], - 'built-ins/TypedArray/prototype/findIndex/get-length-ignores-length-prop': [FAIL], - 'built-ins/TypedArray/prototype/indexOf/get-length-uses-internal-arraylength': [FAIL], - 'built-ins/TypedArray/prototype/lastIndexOf/get-length-uses-internal-arraylength': [FAIL], - 'built-ins/TypedArray/prototype/length/prop-desc': [FAIL], - 'built-ins/TypedArray/prototype/some/get-length-uses-internal-arraylength': [FAIL], - # https://bugs.chromium.org/p/v8/issues/detail?id=4231 'language/eval-code/direct/var-env-lower-lex-catch-non-strict': [FAIL], 'language/statements/try/early-catch-lex': [FAIL],