From ccab9a18b0c5f3afa94237d9b89a65c4574384d4 Mon Sep 17 00:00:00 2001
From: Leo Balter <leonardo.balter@gmail.com>
Date: Thu, 8 Mar 2018 09:21:09 -0500
Subject: [PATCH] Fix length prop tests for the TypedArrays ctors family
 (#1479)

---
 test/built-ins/ArrayBuffer/length.js          | 28 ++++++-------
 test/built-ins/DataView/length.js             | 31 +++++++++++----
 test/built-ins/SharedArrayBuffer/length.js    | 33 ++++++++++++++++
 test/built-ins/TypedArray/invoked.js          |  2 +-
 test/built-ins/TypedArray/length.js           | 25 +++++++-----
 test/built-ins/TypedArray/name.js             |  2 +-
 test/built-ins/TypedArray/prototype.js        |  2 +-
 .../TypedArrays/BigInt64Array/length.js       | 20 +++-------
 .../TypedArrays/BigUint64Array/length.js      | 20 +++-------
 .../TypedArrays/Float32Array/length.js        | 39 +++++++++----------
 .../TypedArrays/Float64Array/length.js        | 37 ++++++++----------
 .../TypedArrays/Int16Array/length.js          | 37 ++++++++----------
 .../TypedArrays/Int32Array/length.js          | 37 ++++++++----------
 .../built-ins/TypedArrays/Int8Array/length.js | 37 ++++++++----------
 .../TypedArrays/Uint16Array/length.js         | 37 ++++++++----------
 .../TypedArrays/Uint32Array/length.js         | 37 ++++++++----------
 .../TypedArrays/Uint8Array/length.js          | 37 ++++++++----------
 .../TypedArrays/Uint8ClampedArray/length.js   | 37 ++++++++----------
 18 files changed, 256 insertions(+), 242 deletions(-)
 create mode 100644 test/built-ins/SharedArrayBuffer/length.js

diff --git a/test/built-ins/ArrayBuffer/length.js b/test/built-ins/ArrayBuffer/length.js
index 413f82c845..efb17544c2 100644
--- a/test/built-ins/ArrayBuffer/length.js
+++ b/test/built-ins/ArrayBuffer/length.js
@@ -8,24 +8,26 @@ description: >
 info: |
   ArrayBuffer ( length )
 
-  17 ECMAScript Standard Built-in Objects:
-    Every built-in Function object, including constructors, has a length
-    property whose value is an integer. Unless otherwise specified, this
-    value is equal to the largest number of named arguments shown in the
-    subclause headings for the function description, including optional
-    parameters. However, rest parameters shown using the form “...name”
-    are not included in the default argument count.
+  ECMAScript Standard Built-in Objects:
 
-    Unless otherwise specified, the length property of a built-in Function
-    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
-    [[Configurable]]: true }.
+  Every built-in function object, including constructors, has a length
+  property whose value is an integer. Unless otherwise specified, this
+  value is equal to the largest number of named arguments shown in the
+  subclause headings for the function description. Optional parameters
+  (which are indicated with brackets: [ ]) or rest parameters (which
+  are shown using the form «...name») are not included in the default
+  argument count.
+
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [ArrayBuffer]
 ---*/
 
-assert.sameValue(ArrayBuffer.length, 1);
-
 verifyProperty(ArrayBuffer, "length", {
-  writable: false,
+  value: 1,
   enumerable: false,
+  writable: false,
   configurable: true,
 });
diff --git a/test/built-ins/DataView/length.js b/test/built-ins/DataView/length.js
index 236e76b28b..727047568f 100644
--- a/test/built-ins/DataView/length.js
+++ b/test/built-ins/DataView/length.js
@@ -3,14 +3,31 @@
 
 /*---
 esid: sec-dataview-constructor
-es6id: 24.2.2
 description: >
-  The length property of DataView is 3
+  The length property of DataView has the default value of 1
+info: |
+  DataView ( buffer [ , byteOffset [ , byteLength ] ] )
+
+  ECMAScript Standard Built-in Objects:
+
+  Every built-in function object, including constructors, has a length
+  property whose value is an integer. Unless otherwise specified, this
+  value is equal to the largest number of named arguments shown in the
+  subclause headings for the function description. Optional parameters
+  (which are indicated with brackets: [ ]) or rest parameters (which
+  are shown using the form «...name») are not included in the default
+  argument count.
+
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [DataView]
 ---*/
 
-assert.sameValue(DataView.length, 3, "The value of `DataView.length` is `3`");
-
-verifyNotEnumerable(DataView, "length");
-verifyNotWritable(DataView, "length");
-verifyConfigurable(DataView, "length");
+verifyProperty(DataView, "length", {
+    value: 1,
+    enumerable: false,
+    writable: false,
+    configurable: true,
+});
diff --git a/test/built-ins/SharedArrayBuffer/length.js b/test/built-ins/SharedArrayBuffer/length.js
new file mode 100644
index 0000000000..077a3fa609
--- /dev/null
+++ b/test/built-ins/SharedArrayBuffer/length.js
@@ -0,0 +1,33 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-sharedarraybuffer-constructor
+description: >
+  SharedArrayBuffer.length is 1.
+info: |
+  SharedArrayBuffer( length )
+
+  ECMAScript Standard Built-in Objects:
+
+  Every built-in function object, including constructors, has a length
+  property whose value is an integer. Unless otherwise specified, this
+  value is equal to the largest number of named arguments shown in the
+  subclause headings for the function description. Optional parameters
+  (which are indicated with brackets: [ ]) or rest parameters (which
+  are shown using the form «...name») are not included in the default
+  argument count.
+
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
+includes: [propertyHelper.js]
+features: [SharedArrayBuffer]
+---*/
+
+verifyProperty(SharedArrayBuffer, "length", {
+  value: 1,
+  enumerable: false,
+  writable: false,
+  configurable: true,
+});
diff --git a/test/built-ins/TypedArray/invoked.js b/test/built-ins/TypedArray/invoked.js
index 8b503b93a3..9d9960a264 100644
--- a/test/built-ins/TypedArray/invoked.js
+++ b/test/built-ins/TypedArray/invoked.js
@@ -1,7 +1,7 @@
 // Copyright (C) 2016 the V8 project authors. All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
-esid: pending
+esid: sec-%typedarray%
 description: Throw a TypeError exception if directly invoked.
 info: |
   22.2.1.1 %TypedArray% ( )
diff --git a/test/built-ins/TypedArray/length.js b/test/built-ins/TypedArray/length.js
index 98c47a33e4..2b839d2e5a 100644
--- a/test/built-ins/TypedArray/length.js
+++ b/test/built-ins/TypedArray/length.js
@@ -1,24 +1,29 @@
 // Copyright (C) 2016 the V8 project authors. All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
+
 /*---
-esid: pending
+esid: sec-%typedarray%
 description: >
   TypedArray has a "length" property whose value is 0.
 info: |
-  22.2.1.1 %TypedArray% ()
+  %TypedArray% ( )
 
   The length property of the %TypedArray% constructor function is 0.
+
+  17 ECMAScript Standard Built-in Objects
+
   ...
 
-  ES7 section 17: Unless otherwise specified, the length property of a built-in
-  Function object has the attributes { [[Writable]]: false, [[Enumerable]]:
-  false, [[Configurable]]: true }.
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js, testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-assert.sameValue(TypedArray.length, 0);
-
-verifyNotEnumerable(TypedArray, 'length');
-verifyNotWritable(TypedArray, 'length');
-verifyConfigurable(TypedArray, 'length');
+verifyProperty(TypedArray, "length", {
+  value: 0,
+  writable: false,
+  enumerable: false,
+  configurable: true
+});
diff --git a/test/built-ins/TypedArray/name.js b/test/built-ins/TypedArray/name.js
index 5a28debf03..6c9581d140 100644
--- a/test/built-ins/TypedArray/name.js
+++ b/test/built-ins/TypedArray/name.js
@@ -1,7 +1,7 @@
 // Copyright (C) 2016 the V8 project authors. All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
-es6id: 22.2.2
+esid: sec-%typedarray%
 description: >
   TypedArray has a 'name' property whose value is "TypedArray".
 info: |
diff --git a/test/built-ins/TypedArray/prototype.js b/test/built-ins/TypedArray/prototype.js
index f788d8723d..91f6b23b64 100644
--- a/test/built-ins/TypedArray/prototype.js
+++ b/test/built-ins/TypedArray/prototype.js
@@ -1,7 +1,7 @@
 // Copyright (C) 2016 the V8 project authors. All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
-es6id: 22.2.2.3
+esid: sec-%typedarray%
 description: >
   "prototype" property of TypedArray
 info: |
diff --git a/test/built-ins/TypedArrays/BigInt64Array/length.js b/test/built-ins/TypedArrays/BigInt64Array/length.js
index dc35a38df9..7d5adc764e 100644
--- a/test/built-ins/TypedArrays/BigInt64Array/length.js
+++ b/test/built-ins/TypedArrays/BigInt64Array/length.js
@@ -5,27 +5,19 @@
 esid: sec-typedarray-constructors
 description: BigInt64Array.length property descriptor
 info: |
-  22.2.4 The TypedArray Constructors
-
-  [...]
+  The TypedArray Constructors
 
   The length property of the TypedArray constructor function is 3.
 
   17 ECMAScript Standard Built-in Objects
 
-  Every built-in function object, including constructors, has a length
-  property whose value is an integer. Unless otherwise specified, this
-  value is equal to the largest number of named arguments shown in the
-  subclause headings for the function description. Optional parameters
-  (which are indicated with brackets: [ ]) or rest parameters (which
-  are shown using the form «...name») are not included in the default
-  argument count.
+  ...
 
-  Unless otherwise specified, the length property of a built-in
-  function object has the attributes { [[Writable]]: false,
-  [[Enumerable]]: false, [[Configurable]]: true }.
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
-features: [BigInt]
+features: [BigInt, TypedArray]
 ---*/
 
 verifyProperty(BigInt64Array, "length", {
diff --git a/test/built-ins/TypedArrays/BigUint64Array/length.js b/test/built-ins/TypedArrays/BigUint64Array/length.js
index 36f55a9638..35128c6871 100644
--- a/test/built-ins/TypedArrays/BigUint64Array/length.js
+++ b/test/built-ins/TypedArrays/BigUint64Array/length.js
@@ -5,27 +5,19 @@
 esid: sec-typedarray-constructors
 description: BigUint64Array.length property descriptor
 info: |
-  22.2.4 The TypedArray Constructors
-
-  [...]
+  The TypedArray Constructors
 
   The length property of the TypedArray constructor function is 3.
 
   17 ECMAScript Standard Built-in Objects
 
-  Every built-in function object, including constructors, has a length
-  property whose value is an integer. Unless otherwise specified, this
-  value is equal to the largest number of named arguments shown in the
-  subclause headings for the function description. Optional parameters
-  (which are indicated with brackets: [ ]) or rest parameters (which
-  are shown using the form «...name») are not included in the default
-  argument count.
+  ...
 
-  Unless otherwise specified, the length property of a built-in
-  function object has the attributes { [[Writable]]: false,
-  [[Enumerable]]: false, [[Configurable]]: true }.
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
-features: [BigInt]
+features: [BigInt, TypedArray]
 ---*/
 
 verifyProperty(BigUint64Array, "length", {
diff --git a/test/built-ins/TypedArrays/Float32Array/length.js b/test/built-ins/TypedArrays/Float32Array/length.js
index 41d18dd605..7bcdb15764 100644
--- a/test/built-ins/TypedArrays/Float32Array/length.js
+++ b/test/built-ins/TypedArrays/Float32Array/length.js
@@ -2,30 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-es6id: 22.2.5
-esid: sec-properties-of-the-typedarray-constructors
-description: >
-  Float32Array.length is 3.
+esid: sec-typedarray-constructors
+description: Float32Array.length property descriptor
 info: |
-  Besides a length property (whose value is 3), [...].
+  The TypedArray Constructors
 
-  17 ECMAScript Standard Built-in Objects:
-    Every built-in Function object, including constructors, has a length
-    property whose value is an integer. Unless otherwise specified, this
-    value is equal to the largest number of named arguments shown in the
-    subclause headings for the function description, including optional
-    parameters. However, rest parameters shown using the form “...name”
-    are not included in the default argument count.
+  The length property of the TypedArray constructor function is 3.
 
-    Unless otherwise specified, the length property of a built-in Function
-    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
-    [[Configurable]]: true }.
+  17 ECMAScript Standard Built-in Objects
+
+  ...
+
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
-features: [TypedArray]
+features: [BigInt]
 ---*/
 
-assert.sameValue(Float32Array.length, 3);
-
-verifyNotEnumerable(Float32Array, "length");
-verifyNotWritable(Float32Array, "length");
-verifyConfigurable(Float32Array, "length");
+verifyProperty(Float32Array, "length", {
+  value: 3,
+  writable: false,
+  enumerable: false,
+  configurable: true
+});
diff --git a/test/built-ins/TypedArrays/Float64Array/length.js b/test/built-ins/TypedArrays/Float64Array/length.js
index 98bfb5fec1..89300e68dc 100644
--- a/test/built-ins/TypedArrays/Float64Array/length.js
+++ b/test/built-ins/TypedArrays/Float64Array/length.js
@@ -2,30 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-es6id: 22.2.5
-esid: sec-properties-of-the-typedarray-constructors
-description: >
-  Float64Array.length is 3.
+esid: sec-typedarray-constructors
+description: Float64Array.length property descriptor
 info: |
-  Besides a length property (whose value is 3), [...].
+  The TypedArray Constructors
 
-  17 ECMAScript Standard Built-in Objects:
-    Every built-in Function object, including constructors, has a length
-    property whose value is an integer. Unless otherwise specified, this
-    value is equal to the largest number of named arguments shown in the
-    subclause headings for the function description, including optional
-    parameters. However, rest parameters shown using the form “...name”
-    are not included in the default argument count.
+  The length property of the TypedArray constructor function is 3.
 
-    Unless otherwise specified, the length property of a built-in Function
-    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
-    [[Configurable]]: true }.
+  17 ECMAScript Standard Built-in Objects
+
+  ...
+
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
 features: [TypedArray]
 ---*/
 
-assert.sameValue(Float64Array.length, 3);
-
-verifyNotEnumerable(Float64Array, "length");
-verifyNotWritable(Float64Array, "length");
-verifyConfigurable(Float64Array, "length");
+verifyProperty(Float64Array, "length", {
+  value: 3,
+  writable: false,
+  enumerable: false,
+  configurable: true
+});
diff --git a/test/built-ins/TypedArrays/Int16Array/length.js b/test/built-ins/TypedArrays/Int16Array/length.js
index 95447e9f28..40c5391eef 100644
--- a/test/built-ins/TypedArrays/Int16Array/length.js
+++ b/test/built-ins/TypedArrays/Int16Array/length.js
@@ -2,30 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-es6id: 22.2.5
-esid: sec-properties-of-the-typedarray-constructors
-description: >
-  Int16Array.length is 3.
+esid: sec-typedarray-constructors
+description: Int16Array.length property descriptor
 info: |
-  Besides a length property (whose value is 3), [...].
+  The TypedArray Constructors
 
-  17 ECMAScript Standard Built-in Objects:
-    Every built-in Function object, including constructors, has a length
-    property whose value is an integer. Unless otherwise specified, this
-    value is equal to the largest number of named arguments shown in the
-    subclause headings for the function description, including optional
-    parameters. However, rest parameters shown using the form “...name”
-    are not included in the default argument count.
+  The length property of the TypedArray constructor function is 3.
 
-    Unless otherwise specified, the length property of a built-in Function
-    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
-    [[Configurable]]: true }.
+  17 ECMAScript Standard Built-in Objects
+
+  ...
+
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
 features: [TypedArray]
 ---*/
 
-assert.sameValue(Int16Array.length, 3);
-
-verifyNotEnumerable(Int16Array, "length");
-verifyNotWritable(Int16Array, "length");
-verifyConfigurable(Int16Array, "length");
+verifyProperty(Int16Array, "length", {
+  value: 3,
+  writable: false,
+  enumerable: false,
+  configurable: true
+});
diff --git a/test/built-ins/TypedArrays/Int32Array/length.js b/test/built-ins/TypedArrays/Int32Array/length.js
index 6821ea6731..df2d8f54b3 100644
--- a/test/built-ins/TypedArrays/Int32Array/length.js
+++ b/test/built-ins/TypedArrays/Int32Array/length.js
@@ -2,30 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-es6id: 22.2.5
-esid: sec-properties-of-the-typedarray-constructors
-description: >
-  Int32Array.length is 3.
+esid: sec-typedarray-constructors
+description: Int32Array.length property descriptor
 info: |
-  Besides a length property (whose value is 3), [...].
+  The TypedArray Constructors
 
-  17 ECMAScript Standard Built-in Objects:
-    Every built-in Function object, including constructors, has a length
-    property whose value is an integer. Unless otherwise specified, this
-    value is equal to the largest number of named arguments shown in the
-    subclause headings for the function description, including optional
-    parameters. However, rest parameters shown using the form “...name”
-    are not included in the default argument count.
+  The length property of the TypedArray constructor function is 3.
 
-    Unless otherwise specified, the length property of a built-in Function
-    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
-    [[Configurable]]: true }.
+  17 ECMAScript Standard Built-in Objects
+
+  ...
+
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
 features: [TypedArray]
 ---*/
 
-assert.sameValue(Int32Array.length, 3);
-
-verifyNotEnumerable(Int32Array, "length");
-verifyNotWritable(Int32Array, "length");
-verifyConfigurable(Int32Array, "length");
+verifyProperty(Int32Array, "length", {
+  value: 3,
+  writable: false,
+  enumerable: false,
+  configurable: true
+});
diff --git a/test/built-ins/TypedArrays/Int8Array/length.js b/test/built-ins/TypedArrays/Int8Array/length.js
index 0cd4836c6b..35d0f7d2e3 100644
--- a/test/built-ins/TypedArrays/Int8Array/length.js
+++ b/test/built-ins/TypedArrays/Int8Array/length.js
@@ -2,30 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-es6id: 22.2.5
-esid: sec-properties-of-the-typedarray-constructors
-description: >
-  Int8Array.length is 3.
+esid: sec-typedarray-constructors
+description: Int8Array.length property descriptor
 info: |
-  Besides a length property (whose value is 3), [...].
+  The TypedArray Constructors
 
-  17 ECMAScript Standard Built-in Objects:
-    Every built-in Function object, including constructors, has a length
-    property whose value is an integer. Unless otherwise specified, this
-    value is equal to the largest number of named arguments shown in the
-    subclause headings for the function description, including optional
-    parameters. However, rest parameters shown using the form “...name”
-    are not included in the default argument count.
+  The length property of the TypedArray constructor function is 3.
 
-    Unless otherwise specified, the length property of a built-in Function
-    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
-    [[Configurable]]: true }.
+  17 ECMAScript Standard Built-in Objects
+
+  ...
+
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
 features: [TypedArray]
 ---*/
 
-assert.sameValue(Int8Array.length, 3);
-
-verifyNotEnumerable(Int8Array, "length");
-verifyNotWritable(Int8Array, "length");
-verifyConfigurable(Int8Array, "length");
+verifyProperty(Int8Array, "length", {
+  value: 3,
+  writable: false,
+  enumerable: false,
+  configurable: true
+});
diff --git a/test/built-ins/TypedArrays/Uint16Array/length.js b/test/built-ins/TypedArrays/Uint16Array/length.js
index 30061f8171..b95ede1392 100644
--- a/test/built-ins/TypedArrays/Uint16Array/length.js
+++ b/test/built-ins/TypedArrays/Uint16Array/length.js
@@ -2,30 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-es6id: 22.2.5
-esid: sec-properties-of-the-typedarray-constructors
-description: >
-  Uint16Array.length is 3.
+esid: sec-typedarray-constructors
+description: Uint16Array.length property descriptor
 info: |
-  Besides a length property (whose value is 3), [...].
+  The TypedArray Constructors
 
-  17 ECMAScript Standard Built-in Objects:
-    Every built-in Function object, including constructors, has a length
-    property whose value is an integer. Unless otherwise specified, this
-    value is equal to the largest number of named arguments shown in the
-    subclause headings for the function description, including optional
-    parameters. However, rest parameters shown using the form “...name”
-    are not included in the default argument count.
+  The length property of the TypedArray constructor function is 3.
 
-    Unless otherwise specified, the length property of a built-in Function
-    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
-    [[Configurable]]: true }.
+  17 ECMAScript Standard Built-in Objects
+
+  ...
+
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
 features: [TypedArray]
 ---*/
 
-assert.sameValue(Uint16Array.length, 3);
-
-verifyNotEnumerable(Uint16Array, "length");
-verifyNotWritable(Uint16Array, "length");
-verifyConfigurable(Uint16Array, "length");
+verifyProperty(Uint16Array, "length", {
+  value: 3,
+  writable: false,
+  enumerable: false,
+  configurable: true
+});
diff --git a/test/built-ins/TypedArrays/Uint32Array/length.js b/test/built-ins/TypedArrays/Uint32Array/length.js
index 99bb6344f4..c10cd13dc6 100644
--- a/test/built-ins/TypedArrays/Uint32Array/length.js
+++ b/test/built-ins/TypedArrays/Uint32Array/length.js
@@ -2,30 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-es6id: 22.2.5
-esid: sec-properties-of-the-typedarray-constructors
-description: >
-  Uint32Array.length is 3.
+esid: sec-typedarray-constructors
+description: Uint32Array.length property descriptor
 info: |
-  Besides a length property (whose value is 3), [...].
+  The TypedArray Constructors
 
-  17 ECMAScript Standard Built-in Objects:
-    Every built-in Function object, including constructors, has a length
-    property whose value is an integer. Unless otherwise specified, this
-    value is equal to the largest number of named arguments shown in the
-    subclause headings for the function description, including optional
-    parameters. However, rest parameters shown using the form “...name”
-    are not included in the default argument count.
+  The length property of the TypedArray constructor function is 3.
 
-    Unless otherwise specified, the length property of a built-in Function
-    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
-    [[Configurable]]: true }.
+  17 ECMAScript Standard Built-in Objects
+
+  ...
+
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
 features: [TypedArray]
 ---*/
 
-assert.sameValue(Uint32Array.length, 3);
-
-verifyNotEnumerable(Uint32Array, "length");
-verifyNotWritable(Uint32Array, "length");
-verifyConfigurable(Uint32Array, "length");
+verifyProperty(Uint32Array, "length", {
+  value: 3,
+  writable: false,
+  enumerable: false,
+  configurable: true
+});
diff --git a/test/built-ins/TypedArrays/Uint8Array/length.js b/test/built-ins/TypedArrays/Uint8Array/length.js
index dcf71bf7b5..22a4ab6b98 100644
--- a/test/built-ins/TypedArrays/Uint8Array/length.js
+++ b/test/built-ins/TypedArrays/Uint8Array/length.js
@@ -2,30 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-es6id: 22.2.5
-esid: sec-properties-of-the-typedarray-constructors
-description: >
-  Uint8Array.length is 3.
+esid: sec-typedarray-constructors
+description: Uint8Array.length property descriptor
 info: |
-  Besides a length property (whose value is 3), [...].
+  The TypedArray Constructors
 
-  17 ECMAScript Standard Built-in Objects:
-    Every built-in Function object, including constructors, has a length
-    property whose value is an integer. Unless otherwise specified, this
-    value is equal to the largest number of named arguments shown in the
-    subclause headings for the function description, including optional
-    parameters. However, rest parameters shown using the form “...name”
-    are not included in the default argument count.
+  The length property of the TypedArray constructor function is 3.
 
-    Unless otherwise specified, the length property of a built-in Function
-    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
-    [[Configurable]]: true }.
+  17 ECMAScript Standard Built-in Objects
+
+  ...
+
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
 features: [TypedArray]
 ---*/
 
-assert.sameValue(Uint8Array.length, 3);
-
-verifyNotEnumerable(Uint8Array, "length");
-verifyNotWritable(Uint8Array, "length");
-verifyConfigurable(Uint8Array, "length");
+verifyProperty(Uint8Array, "length", {
+  value: 3,
+  writable: false,
+  enumerable: false,
+  configurable: true
+});
diff --git a/test/built-ins/TypedArrays/Uint8ClampedArray/length.js b/test/built-ins/TypedArrays/Uint8ClampedArray/length.js
index 3a0314d641..586d472cef 100644
--- a/test/built-ins/TypedArrays/Uint8ClampedArray/length.js
+++ b/test/built-ins/TypedArrays/Uint8ClampedArray/length.js
@@ -2,30 +2,27 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-es6id: 22.2.5
-esid: sec-properties-of-the-typedarray-constructors
-description: >
-  Uint8ClampedArray.length is 3.
+esid: sec-typedarray-constructors
+description: Uint8ClampedArray.length property descriptor
 info: |
-  Besides a length property (whose value is 3), [...].
+  The TypedArray Constructors
 
-  17 ECMAScript Standard Built-in Objects:
-    Every built-in Function object, including constructors, has a length
-    property whose value is an integer. Unless otherwise specified, this
-    value is equal to the largest number of named arguments shown in the
-    subclause headings for the function description, including optional
-    parameters. However, rest parameters shown using the form “...name”
-    are not included in the default argument count.
+  The length property of the TypedArray constructor function is 3.
 
-    Unless otherwise specified, the length property of a built-in Function
-    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
-    [[Configurable]]: true }.
+  17 ECMAScript Standard Built-in Objects
+
+  ...
+
+  Unless otherwise specified, the length property of a built-in function
+  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+  [[Configurable]]: true }.
 includes: [propertyHelper.js]
 features: [TypedArray]
 ---*/
 
-assert.sameValue(Uint8ClampedArray.length, 3);
-
-verifyNotEnumerable(Uint8ClampedArray, "length");
-verifyNotWritable(Uint8ClampedArray, "length");
-verifyConfigurable(Uint8ClampedArray, "length");
+verifyProperty(Uint8ClampedArray, "length", {
+  value: 3,
+  writable: false,
+  enumerable: false,
+  configurable: true
+});
-- 
GitLab