diff --git a/harness/testTypedArray.js b/harness/testTypedArray.js
index 1344b7a8ccae1dcc175e094827ab280302d4862f..84e07ba36feff5ba20843ebefc085c666b88c3d9 100755
--- a/harness/testTypedArray.js
+++ b/harness/testTypedArray.js
@@ -16,6 +16,11 @@ var typedArrayConstructors = [
   Uint8ClampedArray,
 ];
 
+/**
+ * The %TypedArray% intrinsic constructor function.
+ */
+var TypedArray = Object.getPrototypeOf(Int8Array);
+
 /**
  * Callback for testing a typed array constructor.
  *
diff --git a/test/annexB/B.2.4.js b/test/annexB/Date/prototype/getYear/B.2.4.js
similarity index 100%
rename from test/annexB/B.2.4.js
rename to test/annexB/Date/prototype/getYear/B.2.4.js
diff --git a/test/annexB/B.2.4.propertyCheck.js b/test/annexB/Date/prototype/getYear/B.2.4.propertyCheck.js
similarity index 100%
rename from test/annexB/B.2.4.propertyCheck.js
rename to test/annexB/Date/prototype/getYear/B.2.4.propertyCheck.js
diff --git a/test/annexB/Date/prototype/getYear/length.js b/test/annexB/Date/prototype/getYear/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..6b228a133901c12273aa5711c500810914ec3e1c
--- /dev/null
+++ b/test/annexB/Date/prototype/getYear/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.4.1
+description: >
+  Date.prototype.getYear.length is 0.
+info: >
+  Date.prototype.getYear ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getYear.length, 0);
+
+verifyNotEnumerable(Date.prototype.getYear, "length");
+verifyNotWritable(Date.prototype.getYear, "length");
+verifyConfigurable(Date.prototype.getYear, "length");
diff --git a/test/annexB/Date/prototype/getYear/name.js b/test/annexB/Date/prototype/getYear/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..c5aa6317f5885c718537441a6fbb71fe8e912170
--- /dev/null
+++ b/test/annexB/Date/prototype/getYear/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.4.1
+description: >
+  Date.prototype.getYear.name is "getYear".
+info: >
+  Date.prototype.getYear ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getYear.name, "getYear");
+
+verifyNotEnumerable(Date.prototype.getYear, "name");
+verifyNotWritable(Date.prototype.getYear, "name");
+verifyConfigurable(Date.prototype.getYear, "name");
diff --git a/test/annexB/B.2.5.js b/test/annexB/Date/prototype/setYear/B.2.5.js
similarity index 100%
rename from test/annexB/B.2.5.js
rename to test/annexB/Date/prototype/setYear/B.2.5.js
diff --git a/test/annexB/B.2.5.propertyCheck.js b/test/annexB/Date/prototype/setYear/B.2.5.propertyCheck.js
similarity index 100%
rename from test/annexB/B.2.5.propertyCheck.js
rename to test/annexB/Date/prototype/setYear/B.2.5.propertyCheck.js
diff --git a/test/annexB/Date/prototype/setYear/length.js b/test/annexB/Date/prototype/setYear/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..11d40add2bc80553424167c6f81738f1d25c5e32
--- /dev/null
+++ b/test/annexB/Date/prototype/setYear/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.4.2
+description: >
+  Date.prototype.setYear.length is 1.
+info: >
+  Date.prototype.setYear ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setYear.length, 1);
+
+verifyNotEnumerable(Date.prototype.setYear, "length");
+verifyNotWritable(Date.prototype.setYear, "length");
+verifyConfigurable(Date.prototype.setYear, "length");
diff --git a/test/annexB/Date/prototype/setYear/name.js b/test/annexB/Date/prototype/setYear/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..e92b1fa44e3c1ed783a2038a48e0212b91a48a88
--- /dev/null
+++ b/test/annexB/Date/prototype/setYear/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.4.2
+description: >
+  Date.prototype.setYear.name is "setYear".
+info: >
+  Date.prototype.setYear ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setYear.name, "setYear");
+
+verifyNotEnumerable(Date.prototype.setYear, "name");
+verifyNotWritable(Date.prototype.setYear, "name");
+verifyConfigurable(Date.prototype.setYear, "name");
diff --git a/test/annexB/B.2.6.js b/test/annexB/Date/prototype/toGMTString/B.2.6.js
similarity index 100%
rename from test/annexB/B.2.6.js
rename to test/annexB/Date/prototype/toGMTString/B.2.6.js
diff --git a/test/annexB/B.2.6.propertyCheck.js b/test/annexB/Date/prototype/toGMTString/B.2.6.propertyCheck.js
similarity index 100%
rename from test/annexB/B.2.6.propertyCheck.js
rename to test/annexB/Date/prototype/toGMTString/B.2.6.propertyCheck.js
diff --git a/test/annexB/Date/prototype/toGMTString/length.js b/test/annexB/Date/prototype/toGMTString/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..216dd9e718c920c0557d80dddd45447ea4a7a563
--- /dev/null
+++ b/test/annexB/Date/prototype/toGMTString/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.4.3
+description: >
+  Date.prototype.toGMTString.length is 0.
+info: >
+  Date.prototype.toGMTString ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.toGMTString.length, 0);
+
+verifyNotEnumerable(Date.prototype.toGMTString, "length");
+verifyNotWritable(Date.prototype.toGMTString, "length");
+verifyConfigurable(Date.prototype.toGMTString, "length");
diff --git a/test/annexB/Date/prototype/toGMTString/name.js b/test/annexB/Date/prototype/toGMTString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..56f10aa86c11e9d9b872c46c74fcf0639c32e88d
--- /dev/null
+++ b/test/annexB/Date/prototype/toGMTString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.4.3
+description: >
+  Date.prototype.toGMTString.name is "toUTCString".
+info: >
+  Date.prototype.toGMTString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.toGMTString.name, "toUTCString");
+
+verifyNotEnumerable(Date.prototype.toGMTString, "name");
+verifyNotWritable(Date.prototype.toGMTString, "name");
+verifyConfigurable(Date.prototype.toGMTString, "name");
diff --git a/test/annexB/B.2.2.1.1.js b/test/annexB/Object/prototype/__proto__/B.2.2.1.1.js
similarity index 100%
rename from test/annexB/B.2.2.1.1.js
rename to test/annexB/Object/prototype/__proto__/B.2.2.1.1.js
diff --git a/test/annexB/B.2.2.1.2.js b/test/annexB/Object/prototype/__proto__/B.2.2.1.2.js
similarity index 100%
rename from test/annexB/B.2.2.1.2.js
rename to test/annexB/Object/prototype/__proto__/B.2.2.1.2.js
diff --git a/test/annexB/RegExp-control-escape-russian-letter.js b/test/annexB/RegExp/RegExp-control-escape-russian-letter.js
similarity index 100%
rename from test/annexB/RegExp-control-escape-russian-letter.js
rename to test/annexB/RegExp/RegExp-control-escape-russian-letter.js
diff --git a/test/annexB/RegExp-decimal-escape-class-range.js b/test/annexB/RegExp/RegExp-decimal-escape-class-range.js
similarity index 100%
rename from test/annexB/RegExp-decimal-escape-class-range.js
rename to test/annexB/RegExp/RegExp-decimal-escape-class-range.js
diff --git a/test/annexB/RegExp-decimal-escape-not-capturing.js b/test/annexB/RegExp/RegExp-decimal-escape-not-capturing.js
similarity index 100%
rename from test/annexB/RegExp-decimal-escape-not-capturing.js
rename to test/annexB/RegExp/RegExp-decimal-escape-not-capturing.js
diff --git a/test/annexB/RegExp-leading-escape-BMP.js b/test/annexB/RegExp/RegExp-leading-escape-BMP.js
similarity index 100%
rename from test/annexB/RegExp-leading-escape-BMP.js
rename to test/annexB/RegExp/RegExp-leading-escape-BMP.js
diff --git a/test/annexB/RegExp-leading-escape.js b/test/annexB/RegExp/RegExp-leading-escape.js
similarity index 100%
rename from test/annexB/RegExp-leading-escape.js
rename to test/annexB/RegExp/RegExp-leading-escape.js
diff --git a/test/annexB/RegExp-trailing-escape-BMP.js b/test/annexB/RegExp/RegExp-trailing-escape-BMP.js
similarity index 100%
rename from test/annexB/RegExp-trailing-escape-BMP.js
rename to test/annexB/RegExp/RegExp-trailing-escape-BMP.js
diff --git a/test/annexB/RegExp-trailing-escape.js b/test/annexB/RegExp/RegExp-trailing-escape.js
similarity index 100%
rename from test/annexB/RegExp-trailing-escape.js
rename to test/annexB/RegExp/RegExp-trailing-escape.js
diff --git a/test/annexB/B.RegExp.prototype.compile.js b/test/annexB/RegExp/prototype/compile/B.RegExp.prototype.compile.js
similarity index 100%
rename from test/annexB/B.RegExp.prototype.compile.js
rename to test/annexB/RegExp/prototype/compile/B.RegExp.prototype.compile.js
diff --git a/test/annexB/RegExp/prototype/compile/length.js b/test/annexB/RegExp/prototype/compile/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..860cf91ca5af82332247c6fd0fcb59492c28b36b
--- /dev/null
+++ b/test/annexB/RegExp/prototype/compile/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.5.1
+description: >
+  RegExp.prototype.compile.length is 2.
+info: >
+  RegExp.prototype.compile (pattern, flags )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(RegExp.prototype.compile.length, 2);
+
+verifyNotEnumerable(RegExp.prototype.compile, "length");
+verifyNotWritable(RegExp.prototype.compile, "length");
+verifyConfigurable(RegExp.prototype.compile, "length");
diff --git a/test/annexB/RegExp/prototype/compile/name.js b/test/annexB/RegExp/prototype/compile/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..1e6d0740f2b4c784cd371c4a06223678b64997da
--- /dev/null
+++ b/test/annexB/RegExp/prototype/compile/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.5.1
+description: >
+  RegExp.prototype.compile.name is "compile".
+info: >
+  RegExp.prototype.compile (pattern, flags )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(RegExp.prototype.compile.name, "compile");
+
+verifyNotEnumerable(RegExp.prototype.compile, "name");
+verifyNotWritable(RegExp.prototype.compile, "name");
+verifyConfigurable(RegExp.prototype.compile, "name");
diff --git a/test/annexB/B.2.3.2.js b/test/annexB/String/prototype/anchor/B.2.3.2.js
similarity index 100%
rename from test/annexB/B.2.3.2.js
rename to test/annexB/String/prototype/anchor/B.2.3.2.js
diff --git a/test/annexB/String/prototype/anchor/length.js b/test/annexB/String/prototype/anchor/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..0dd0abaada5a8fc048fc187a1beada0e435c02a8
--- /dev/null
+++ b/test/annexB/String/prototype/anchor/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.2
+description: >
+  String.prototype.anchor.length is 1.
+info: >
+  String.prototype.anchor ( name )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.anchor.length, 1);
+
+verifyNotEnumerable(String.prototype.anchor, "length");
+verifyNotWritable(String.prototype.anchor, "length");
+verifyConfigurable(String.prototype.anchor, "length");
diff --git a/test/annexB/String/prototype/anchor/name.js b/test/annexB/String/prototype/anchor/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..1a92bf4e100414ba90912c41eb81e594ddd8e2ca
--- /dev/null
+++ b/test/annexB/String/prototype/anchor/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.2
+description: >
+  String.prototype.anchor.name is "anchor".
+info: >
+  String.prototype.anchor ( name )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.anchor.name, "anchor");
+
+verifyNotEnumerable(String.prototype.anchor, "name");
+verifyNotWritable(String.prototype.anchor, "name");
+verifyConfigurable(String.prototype.anchor, "name");
diff --git a/test/annexB/B.2.3.3.js b/test/annexB/String/prototype/big/B.2.3.3.js
similarity index 100%
rename from test/annexB/B.2.3.3.js
rename to test/annexB/String/prototype/big/B.2.3.3.js
diff --git a/test/annexB/String/prototype/big/length.js b/test/annexB/String/prototype/big/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..c04e5548dc8cf5c1ab31ea0351601304902cf13e
--- /dev/null
+++ b/test/annexB/String/prototype/big/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.3
+description: >
+  String.prototype.big.length is 0.
+info: >
+  String.prototype.big ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.big.length, 0);
+
+verifyNotEnumerable(String.prototype.big, "length");
+verifyNotWritable(String.prototype.big, "length");
+verifyConfigurable(String.prototype.big, "length");
diff --git a/test/annexB/String/prototype/big/name.js b/test/annexB/String/prototype/big/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..271fc258c5a4fc5ae8e366c9215bb6b205731a8f
--- /dev/null
+++ b/test/annexB/String/prototype/big/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.3
+description: >
+  String.prototype.big.name is "big".
+info: >
+  String.prototype.big ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.big.name, "big");
+
+verifyNotEnumerable(String.prototype.big, "name");
+verifyNotWritable(String.prototype.big, "name");
+verifyConfigurable(String.prototype.big, "name");
diff --git a/test/annexB/B.2.3.4.js b/test/annexB/String/prototype/blink/B.2.3.4.js
similarity index 100%
rename from test/annexB/B.2.3.4.js
rename to test/annexB/String/prototype/blink/B.2.3.4.js
diff --git a/test/annexB/String/prototype/blink/length.js b/test/annexB/String/prototype/blink/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..b29fcd12ad8d87c44ed42f0e9f67003b794e2b3c
--- /dev/null
+++ b/test/annexB/String/prototype/blink/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.4
+description: >
+  String.prototype.blink.length is 0.
+info: >
+  String.prototype.blink ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.blink.length, 0);
+
+verifyNotEnumerable(String.prototype.blink, "length");
+verifyNotWritable(String.prototype.blink, "length");
+verifyConfigurable(String.prototype.blink, "length");
diff --git a/test/annexB/String/prototype/blink/name.js b/test/annexB/String/prototype/blink/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..393782a12b602a6d636d1b20ce3424fe4825fdcd
--- /dev/null
+++ b/test/annexB/String/prototype/blink/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.4
+description: >
+  String.prototype.blink.name is "blink".
+info: >
+  String.prototype.blink ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.blink.name, "blink");
+
+verifyNotEnumerable(String.prototype.blink, "name");
+verifyNotWritable(String.prototype.blink, "name");
+verifyConfigurable(String.prototype.blink, "name");
diff --git a/test/annexB/B.2.3.5.js b/test/annexB/String/prototype/bold/B.2.3.5.js
similarity index 100%
rename from test/annexB/B.2.3.5.js
rename to test/annexB/String/prototype/bold/B.2.3.5.js
diff --git a/test/annexB/String/prototype/bold/length.js b/test/annexB/String/prototype/bold/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..1b57ad5a1703aad36d08c701f184f0faa8296594
--- /dev/null
+++ b/test/annexB/String/prototype/bold/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.5
+description: >
+  String.prototype.bold.length is 0.
+info: >
+  String.prototype.bold ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.bold.length, 0);
+
+verifyNotEnumerable(String.prototype.bold, "length");
+verifyNotWritable(String.prototype.bold, "length");
+verifyConfigurable(String.prototype.bold, "length");
diff --git a/test/annexB/String/prototype/bold/name.js b/test/annexB/String/prototype/bold/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..ba4398e7cada0c8c1c235ea9994815542b95feb6
--- /dev/null
+++ b/test/annexB/String/prototype/bold/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.5
+description: >
+  String.prototype.bold.name is "bold".
+info: >
+  String.prototype.bold ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.bold.name, "bold");
+
+verifyNotEnumerable(String.prototype.bold, "name");
+verifyNotWritable(String.prototype.bold, "name");
+verifyConfigurable(String.prototype.bold, "name");
diff --git a/test/annexB/B.2.3.6.js b/test/annexB/String/prototype/fixed/B.2.3.6.js
similarity index 100%
rename from test/annexB/B.2.3.6.js
rename to test/annexB/String/prototype/fixed/B.2.3.6.js
diff --git a/test/annexB/String/prototype/fixed/length.js b/test/annexB/String/prototype/fixed/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..0bb3b460b98f73eae7ee5cc30172084e3ed4bd94
--- /dev/null
+++ b/test/annexB/String/prototype/fixed/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.6
+description: >
+  String.prototype.fixed.length is 0.
+info: >
+  String.prototype.fixed ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.fixed.length, 0);
+
+verifyNotEnumerable(String.prototype.fixed, "length");
+verifyNotWritable(String.prototype.fixed, "length");
+verifyConfigurable(String.prototype.fixed, "length");
diff --git a/test/annexB/String/prototype/fixed/name.js b/test/annexB/String/prototype/fixed/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..0e13006ac04c3fcb884f48fa364b81efb9d5cb6d
--- /dev/null
+++ b/test/annexB/String/prototype/fixed/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.6
+description: >
+  String.prototype.fixed.name is "fixed".
+info: >
+  String.prototype.fixed ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.fixed.name, "fixed");
+
+verifyNotEnumerable(String.prototype.fixed, "name");
+verifyNotWritable(String.prototype.fixed, "name");
+verifyConfigurable(String.prototype.fixed, "name");
diff --git a/test/annexB/B.2.3.7.js b/test/annexB/String/prototype/fontcolor/B.2.3.7.js
similarity index 100%
rename from test/annexB/B.2.3.7.js
rename to test/annexB/String/prototype/fontcolor/B.2.3.7.js
diff --git a/test/annexB/String/prototype/fontcolor/length.js b/test/annexB/String/prototype/fontcolor/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..702400bb32e2fb074519f0fdf4865fe0555376ef
--- /dev/null
+++ b/test/annexB/String/prototype/fontcolor/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.7
+description: >
+  String.prototype.fontcolor.length is 1.
+info: >
+  String.prototype.fontcolor ( color )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.fontcolor.length, 1);
+
+verifyNotEnumerable(String.prototype.fontcolor, "length");
+verifyNotWritable(String.prototype.fontcolor, "length");
+verifyConfigurable(String.prototype.fontcolor, "length");
diff --git a/test/annexB/String/prototype/fontcolor/name.js b/test/annexB/String/prototype/fontcolor/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..7a717ef63ac5c8225f203dd68d6034dfc1f69ab0
--- /dev/null
+++ b/test/annexB/String/prototype/fontcolor/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.7
+description: >
+  String.prototype.fontcolor.name is "fontcolor".
+info: >
+  String.prototype.fontcolor ( color )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.fontcolor.name, "fontcolor");
+
+verifyNotEnumerable(String.prototype.fontcolor, "name");
+verifyNotWritable(String.prototype.fontcolor, "name");
+verifyConfigurable(String.prototype.fontcolor, "name");
diff --git a/test/annexB/B.2.3.8.js b/test/annexB/String/prototype/fontsize/B.2.3.8.js
similarity index 100%
rename from test/annexB/B.2.3.8.js
rename to test/annexB/String/prototype/fontsize/B.2.3.8.js
diff --git a/test/annexB/String/prototype/fontsize/length.js b/test/annexB/String/prototype/fontsize/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..33bae20f91c7201c1f82f1db81574a576c8aa713
--- /dev/null
+++ b/test/annexB/String/prototype/fontsize/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.8
+description: >
+  String.prototype.fontsize.length is 1.
+info: >
+  String.prototype.fontsize ( size )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.fontsize.length, 1);
+
+verifyNotEnumerable(String.prototype.fontsize, "length");
+verifyNotWritable(String.prototype.fontsize, "length");
+verifyConfigurable(String.prototype.fontsize, "length");
diff --git a/test/annexB/String/prototype/fontsize/name.js b/test/annexB/String/prototype/fontsize/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..c45e27f724d82d5dbe276ee95ca03d4028f59f56
--- /dev/null
+++ b/test/annexB/String/prototype/fontsize/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.8
+description: >
+  String.prototype.fontsize.name is "fontsize".
+info: >
+  String.prototype.fontsize ( color )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.fontsize.name, "fontsize");
+
+verifyNotEnumerable(String.prototype.fontsize, "name");
+verifyNotWritable(String.prototype.fontsize, "name");
+verifyConfigurable(String.prototype.fontsize, "name");
diff --git a/test/annexB/B.2.3.9.js b/test/annexB/String/prototype/italics/B.2.3.9.js
similarity index 100%
rename from test/annexB/B.2.3.9.js
rename to test/annexB/String/prototype/italics/B.2.3.9.js
diff --git a/test/annexB/String/prototype/italics/length.js b/test/annexB/String/prototype/italics/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..86121c1afa76639942c51063f71c3a8efa9dbd97
--- /dev/null
+++ b/test/annexB/String/prototype/italics/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.9
+description: >
+  String.prototype.italics.length is 0.
+info: >
+  String.prototype.italics ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.italics.length, 0);
+
+verifyNotEnumerable(String.prototype.italics, "length");
+verifyNotWritable(String.prototype.italics, "length");
+verifyConfigurable(String.prototype.italics, "length");
diff --git a/test/annexB/String/prototype/italics/name.js b/test/annexB/String/prototype/italics/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..071b175c64056c1eefe58562f18c9dd19bb090fc
--- /dev/null
+++ b/test/annexB/String/prototype/italics/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.9
+description: >
+  String.prototype.italics.name is "italics".
+info: >
+  String.prototype.italics ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.italics.name, "italics");
+
+verifyNotEnumerable(String.prototype.italics, "name");
+verifyNotWritable(String.prototype.italics, "name");
+verifyConfigurable(String.prototype.italics, "name");
diff --git a/test/annexB/B.2.3.10.js b/test/annexB/String/prototype/link/B.2.3.10.js
similarity index 100%
rename from test/annexB/B.2.3.10.js
rename to test/annexB/String/prototype/link/B.2.3.10.js
diff --git a/test/annexB/String/prototype/link/length.js b/test/annexB/String/prototype/link/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..fbbe27cd52bf6c84e70ddc15182362ae1cab4cd3
--- /dev/null
+++ b/test/annexB/String/prototype/link/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.10
+description: >
+  String.prototype.link.length is 1.
+info: >
+  String.prototype.link ( url )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.link.length, 1);
+
+verifyNotEnumerable(String.prototype.link, "length");
+verifyNotWritable(String.prototype.link, "length");
+verifyConfigurable(String.prototype.link, "length");
diff --git a/test/annexB/String/prototype/link/name.js b/test/annexB/String/prototype/link/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..e9b2dc34010687e2870927e151dce7b8351dc012
--- /dev/null
+++ b/test/annexB/String/prototype/link/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.10
+description: >
+  String.prototype.link.name is "link".
+info: >
+  String.prototype.link ( url )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.link.name, "link");
+
+verifyNotEnumerable(String.prototype.link, "name");
+verifyNotWritable(String.prototype.link, "name");
+verifyConfigurable(String.prototype.link, "name");
diff --git a/test/annexB/B.2.3.11.js b/test/annexB/String/prototype/small/B.2.3.11.js
similarity index 100%
rename from test/annexB/B.2.3.11.js
rename to test/annexB/String/prototype/small/B.2.3.11.js
diff --git a/test/annexB/String/prototype/small/length.js b/test/annexB/String/prototype/small/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..f5e32ce4874c31564d33a54e25fc7630e94d2ba7
--- /dev/null
+++ b/test/annexB/String/prototype/small/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.11
+description: >
+  String.prototype.small.length is 0.
+info: >
+  String.prototype.small ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.small.length, 0);
+
+verifyNotEnumerable(String.prototype.small, "length");
+verifyNotWritable(String.prototype.small, "length");
+verifyConfigurable(String.prototype.small, "length");
diff --git a/test/annexB/String/prototype/small/name.js b/test/annexB/String/prototype/small/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..07278ac1222338e204cbbbc742a283305e55bff9
--- /dev/null
+++ b/test/annexB/String/prototype/small/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.11
+description: >
+  String.prototype.small.name is "small".
+info: >
+  String.prototype.small ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.small.name, "small");
+
+verifyNotEnumerable(String.prototype.small, "name");
+verifyNotWritable(String.prototype.small, "name");
+verifyConfigurable(String.prototype.small, "name");
diff --git a/test/annexB/B.2.3.12.js b/test/annexB/String/prototype/strike/B.2.3.12.js
similarity index 100%
rename from test/annexB/B.2.3.12.js
rename to test/annexB/String/prototype/strike/B.2.3.12.js
diff --git a/test/annexB/String/prototype/strike/length.js b/test/annexB/String/prototype/strike/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..f900a36bfb11528a4030384a7d80667d44cc03b8
--- /dev/null
+++ b/test/annexB/String/prototype/strike/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.12
+description: >
+  String.prototype.strike.length is 0.
+info: >
+  String.prototype.strike ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.strike.length, 0);
+
+verifyNotEnumerable(String.prototype.strike, "length");
+verifyNotWritable(String.prototype.strike, "length");
+verifyConfigurable(String.prototype.strike, "length");
diff --git a/test/annexB/String/prototype/strike/name.js b/test/annexB/String/prototype/strike/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..bda703860cd0de2e7500a79c6281ab85a3c1698e
--- /dev/null
+++ b/test/annexB/String/prototype/strike/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.12
+description: >
+  String.prototype.strike.name is "strike".
+info: >
+  String.prototype.strike ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.strike.name, "strike");
+
+verifyNotEnumerable(String.prototype.strike, "name");
+verifyNotWritable(String.prototype.strike, "name");
+verifyConfigurable(String.prototype.strike, "name");
diff --git a/test/annexB/B.2.3.13.js b/test/annexB/String/prototype/sub/B.2.3.13.js
similarity index 100%
rename from test/annexB/B.2.3.13.js
rename to test/annexB/String/prototype/sub/B.2.3.13.js
diff --git a/test/annexB/String/prototype/sub/length.js b/test/annexB/String/prototype/sub/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..7c7ed50ff7ebc60a87c7775c8a44a00e56d5b254
--- /dev/null
+++ b/test/annexB/String/prototype/sub/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.13
+description: >
+  String.prototype.sub.length is 0.
+info: >
+  String.prototype.sub ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.sub.length, 0);
+
+verifyNotEnumerable(String.prototype.sub, "length");
+verifyNotWritable(String.prototype.sub, "length");
+verifyConfigurable(String.prototype.sub, "length");
diff --git a/test/annexB/String/prototype/sub/name.js b/test/annexB/String/prototype/sub/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..e1ea91559e772d2e572ebea171690f733a47b234
--- /dev/null
+++ b/test/annexB/String/prototype/sub/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.13
+description: >
+  String.prototype.sub.name is "sub".
+info: >
+  String.prototype.sub ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.sub.name, "sub");
+
+verifyNotEnumerable(String.prototype.sub, "name");
+verifyNotWritable(String.prototype.sub, "name");
+verifyConfigurable(String.prototype.sub, "name");
diff --git a/test/annexB/B.2.3.js b/test/annexB/String/prototype/substr/B.2.3.js
similarity index 100%
rename from test/annexB/B.2.3.js
rename to test/annexB/String/prototype/substr/B.2.3.js
diff --git a/test/annexB/String/prototype/substr/length.js b/test/annexB/String/prototype/substr/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..05c36f75e0b905a439bcb0aedacf845242107b0d
--- /dev/null
+++ b/test/annexB/String/prototype/substr/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.1
+description: >
+  String.prototype.substr.length is 2.
+info: >
+  String.prototype.substr (start, 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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.substr.length, 2);
+
+verifyNotEnumerable(String.prototype.substr, "length");
+verifyNotWritable(String.prototype.substr, "length");
+verifyConfigurable(String.prototype.substr, "length");
diff --git a/test/annexB/String/prototype/substr/name.js b/test/annexB/String/prototype/substr/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..ef8057acade9b89235be777923328b1d95e96e56
--- /dev/null
+++ b/test/annexB/String/prototype/substr/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.1
+description: >
+  String.prototype.substr.name is "substr".
+info: >
+  String.prototype.substr (start, length)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.substr.name, "substr");
+
+verifyNotEnumerable(String.prototype.substr, "name");
+verifyNotWritable(String.prototype.substr, "name");
+verifyConfigurable(String.prototype.substr, "name");
diff --git a/test/annexB/B.2.3.14.js b/test/annexB/String/prototype/sup/B.2.3.14.js
similarity index 100%
rename from test/annexB/B.2.3.14.js
rename to test/annexB/String/prototype/sup/B.2.3.14.js
diff --git a/test/annexB/String/prototype/sup/length.js b/test/annexB/String/prototype/sup/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..f312bf98bac971721833eacef7a9d09694d43de9
--- /dev/null
+++ b/test/annexB/String/prototype/sup/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.14
+description: >
+  String.prototype.sup.length is 0.
+info: >
+  String.prototype.sup ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.sup.length, 0);
+
+verifyNotEnumerable(String.prototype.sup, "length");
+verifyNotWritable(String.prototype.sup, "length");
+verifyConfigurable(String.prototype.sup, "length");
diff --git a/test/annexB/String/prototype/sup/name.js b/test/annexB/String/prototype/sup/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4642c4c2732069c22ad4bea40fc3d1c1bf6f8e40
--- /dev/null
+++ b/test/annexB/String/prototype/sup/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.3.14
+description: >
+  String.prototype.sup.name is "sup".
+info: >
+  String.prototype.sup ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.sup.name, "sup");
+
+verifyNotEnumerable(String.prototype.sup, "name");
+verifyNotWritable(String.prototype.sup, "name");
+verifyConfigurable(String.prototype.sup, "name");
diff --git a/test/annexB/B.2.1.js b/test/annexB/global/escape/B.2.1.js
similarity index 100%
rename from test/annexB/B.2.1.js
rename to test/annexB/global/escape/B.2.1.js
diff --git a/test/annexB/B.2.1.propertyCheck.js b/test/annexB/global/escape/B.2.1.propertyCheck.js
similarity index 100%
rename from test/annexB/B.2.1.propertyCheck.js
rename to test/annexB/global/escape/B.2.1.propertyCheck.js
diff --git a/test/annexB/global/escape/length.js b/test/annexB/global/escape/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..08be6f98a315623157509b18d9eb179e193257fc
--- /dev/null
+++ b/test/annexB/global/escape/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.1.1
+description: >
+  escape.length is 1.
+info: >
+  escape (string)
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(escape.length, 1);
+
+verifyNotEnumerable(escape, "length");
+verifyNotWritable(escape, "length");
+verifyConfigurable(escape, "length");
diff --git a/test/annexB/global/escape/name.js b/test/annexB/global/escape/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..392009b71f29e82edfa051f1379d1f5e5f3750c1
--- /dev/null
+++ b/test/annexB/global/escape/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.1.1
+description: >
+  escape.name is "escape".
+info: >
+  escape (string)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(escape.name, "escape");
+
+verifyNotEnumerable(escape, "name");
+verifyNotWritable(escape, "name");
+verifyConfigurable(escape, "name");
diff --git a/test/annexB/B.2.2.js b/test/annexB/global/unescape/B.2.2.js
similarity index 100%
rename from test/annexB/B.2.2.js
rename to test/annexB/global/unescape/B.2.2.js
diff --git a/test/annexB/B.2.2.propertyCheck.js b/test/annexB/global/unescape/B.2.2.propertyCheck.js
similarity index 100%
rename from test/annexB/B.2.2.propertyCheck.js
rename to test/annexB/global/unescape/B.2.2.propertyCheck.js
diff --git a/test/annexB/global/unescape/length.js b/test/annexB/global/unescape/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..f700c74350244551ba417a7bba7e95f21e9570d4
--- /dev/null
+++ b/test/annexB/global/unescape/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.1.2
+description: >
+  unescape.length is 1.
+info: >
+  unescape (string)
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(unescape.length, 1);
+
+verifyNotEnumerable(unescape, "length");
+verifyNotWritable(unescape, "length");
+verifyConfigurable(unescape, "length");
diff --git a/test/annexB/global/unescape/name.js b/test/annexB/global/unescape/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..f524d40772928b6a28dd0c922ccaf7c06dc0d615
--- /dev/null
+++ b/test/annexB/global/unescape/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: B.2.1.2
+description: >
+  unescape.name is "unescape".
+info: >
+  unescape (string)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(unescape.name, "unescape");
+
+verifyNotEnumerable(unescape, "name");
+verifyNotWritable(unescape, "name");
+verifyConfigurable(unescape, "name");
diff --git a/test/built-ins/Array/Symbol.species/length.js b/test/built-ins/Array/Symbol.species/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..d50fe6190fbd25b09f8090ea2e37046b1961dca1
--- /dev/null
+++ b/test/built-ins/Array/Symbol.species/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.2.5
+description: >
+  get Array [ @@species ].length is 0.
+info: >
+  get Array [ @@species ]
+
+  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.
+
+    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: [Symbol.species]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(Array, Symbol.species);
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/Array/symbol-species-name.js b/test/built-ins/Array/Symbol.species/symbol-species-name.js
similarity index 100%
rename from test/built-ins/Array/symbol-species-name.js
rename to test/built-ins/Array/Symbol.species/symbol-species-name.js
diff --git a/test/built-ins/Array/symbol-species.js b/test/built-ins/Array/Symbol.species/symbol-species.js
similarity index 100%
rename from test/built-ins/Array/symbol-species.js
rename to test/built-ins/Array/Symbol.species/symbol-species.js
diff --git a/test/built-ins/Array/isArray/name.js b/test/built-ins/Array/isArray/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..bf4464f1d77aad8d285943b1c7f5f49826d43918
--- /dev/null
+++ b/test/built-ins/Array/isArray/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.2.2
+description: >
+  Array.isArray.name is "isArray".
+info: >
+  Array.isArray ( arg )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.isArray.name, "isArray");
+
+verifyNotEnumerable(Array.isArray, "name");
+verifyNotWritable(Array.isArray, "name");
+verifyConfigurable(Array.isArray, "name");
diff --git a/test/built-ins/Array/prototype/concat/name.js b/test/built-ins/Array/prototype/concat/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..beac1601bc77e0410b6441aef911e82d5689667b
--- /dev/null
+++ b/test/built-ins/Array/prototype/concat/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.1
+description: >
+  Array.prototype.concat.name is "concat".
+info: >
+  Array.prototype.concat ( ...arguments )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.concat.name, "concat");
+
+verifyNotEnumerable(Array.prototype.concat, "name");
+verifyNotWritable(Array.prototype.concat, "name");
+verifyConfigurable(Array.prototype.concat, "name");
diff --git a/test/built-ins/Array/prototype/every/name.js b/test/built-ins/Array/prototype/every/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..6ef522c10b218b9f6ded4ca44ae2d897b2c8f065
--- /dev/null
+++ b/test/built-ins/Array/prototype/every/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.5
+description: >
+  Array.prototype.every.name is "every".
+info: >
+  Array.prototype.every ( callbackfn [ , thisArg] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.every.name, "every");
+
+verifyNotEnumerable(Array.prototype.every, "name");
+verifyNotWritable(Array.prototype.every, "name");
+verifyConfigurable(Array.prototype.every, "name");
diff --git a/test/built-ins/Array/prototype/filter/name.js b/test/built-ins/Array/prototype/filter/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..3912493b0ef6db7a35f4f288c09b492f9e1fe8a4
--- /dev/null
+++ b/test/built-ins/Array/prototype/filter/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.7
+description: >
+  Array.prototype.filter.name is "filter".
+info: >
+  Array.prototype.filter ( callbackfn [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.filter.name, "filter");
+
+verifyNotEnumerable(Array.prototype.filter, "name");
+verifyNotWritable(Array.prototype.filter, "name");
+verifyConfigurable(Array.prototype.filter, "name");
diff --git a/test/built-ins/Array/prototype/forEach/name.js b/test/built-ins/Array/prototype/forEach/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..7d072517c243fd25f5ab5d2d3094e2c1ee8d3a39
--- /dev/null
+++ b/test/built-ins/Array/prototype/forEach/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.10
+description: >
+  Array.prototype.forEach.name is "forEach".
+info: >
+  Array.prototype.forEach ( callbackfn [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.forEach.name, "forEach");
+
+verifyNotEnumerable(Array.prototype.forEach, "name");
+verifyNotWritable(Array.prototype.forEach, "name");
+verifyConfigurable(Array.prototype.forEach, "name");
diff --git a/test/built-ins/Array/prototype/indexOf/name.js b/test/built-ins/Array/prototype/indexOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a909f7466233eed8bbdc3200a74def841116671f
--- /dev/null
+++ b/test/built-ins/Array/prototype/indexOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.11
+description: >
+  Array.prototype.indexOf.name is "indexOf".
+info: >
+  Array.prototype.indexOf ( searchElement [ , fromIndex ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.indexOf.name, "indexOf");
+
+verifyNotEnumerable(Array.prototype.indexOf, "name");
+verifyNotWritable(Array.prototype.indexOf, "name");
+verifyConfigurable(Array.prototype.indexOf, "name");
diff --git a/test/built-ins/Array/prototype/join/name.js b/test/built-ins/Array/prototype/join/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..722bd4282669272253d6978ab06c31d01d97427a
--- /dev/null
+++ b/test/built-ins/Array/prototype/join/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.12
+description: >
+  Array.prototype.join.name is "join".
+info: >
+  Array.prototype.join (separator)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.join.name, "join");
+
+verifyNotEnumerable(Array.prototype.join, "name");
+verifyNotWritable(Array.prototype.join, "name");
+verifyConfigurable(Array.prototype.join, "name");
diff --git a/test/built-ins/Array/prototype/lastIndexOf/name.js b/test/built-ins/Array/prototype/lastIndexOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a36863ed0b6470cc471075f8ace9f5507f895a07
--- /dev/null
+++ b/test/built-ins/Array/prototype/lastIndexOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.14
+description: >
+  Array.prototype.lastIndexOf.name is "lastIndexOf".
+info: >
+  Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.lastIndexOf.name, "lastIndexOf");
+
+verifyNotEnumerable(Array.prototype.lastIndexOf, "name");
+verifyNotWritable(Array.prototype.lastIndexOf, "name");
+verifyConfigurable(Array.prototype.lastIndexOf, "name");
diff --git a/test/built-ins/Array/prototype/map/name.js b/test/built-ins/Array/prototype/map/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..7869f819bcdc48b624f104a1574189b416bff40a
--- /dev/null
+++ b/test/built-ins/Array/prototype/map/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.15
+description: >
+  Array.prototype.map.name is "map".
+info: >
+  Array.prototype.map ( callbackfn [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.map.name, "map");
+
+verifyNotEnumerable(Array.prototype.map, "name");
+verifyNotWritable(Array.prototype.map, "name");
+verifyConfigurable(Array.prototype.map, "name");
diff --git a/test/built-ins/Array/prototype/pop/name.js b/test/built-ins/Array/prototype/pop/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..6facd522e4514107814b3a5ddab0ac85cd703531
--- /dev/null
+++ b/test/built-ins/Array/prototype/pop/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.16
+description: >
+  Array.prototype.pop.name is "pop".
+info: >
+  Array.prototype.pop ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.pop.name, "pop");
+
+verifyNotEnumerable(Array.prototype.pop, "name");
+verifyNotWritable(Array.prototype.pop, "name");
+verifyConfigurable(Array.prototype.pop, "name");
diff --git a/test/built-ins/Array/prototype/push/name.js b/test/built-ins/Array/prototype/push/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..296e9ffdf94084dd46267fe5b219e90597e4e943
--- /dev/null
+++ b/test/built-ins/Array/prototype/push/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.17
+description: >
+  Array.prototype.push.name is "push".
+info: >
+  Array.prototype.push ( ...items )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.push.name, "push");
+
+verifyNotEnumerable(Array.prototype.push, "name");
+verifyNotWritable(Array.prototype.push, "name");
+verifyConfigurable(Array.prototype.push, "name");
diff --git a/test/built-ins/Array/prototype/reduce/name.js b/test/built-ins/Array/prototype/reduce/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..db8087ab26437d6abad6d46ba46751a3b455750a
--- /dev/null
+++ b/test/built-ins/Array/prototype/reduce/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.18
+description: >
+  Array.prototype.reduce.name is "reduce".
+info: >
+  Array.prototype.reduce ( callbackfn [ , initialValue ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.reduce.name, "reduce");
+
+verifyNotEnumerable(Array.prototype.reduce, "name");
+verifyNotWritable(Array.prototype.reduce, "name");
+verifyConfigurable(Array.prototype.reduce, "name");
diff --git a/test/built-ins/Array/prototype/reduceRight/name.js b/test/built-ins/Array/prototype/reduceRight/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..997d3091d8977886191a4bdc81f0a9c228ae13f0
--- /dev/null
+++ b/test/built-ins/Array/prototype/reduceRight/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.19
+description: >
+  Array.prototype.reduceRight.name is "reduceRight".
+info: >
+  Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.reduceRight.name, "reduceRight");
+
+verifyNotEnumerable(Array.prototype.reduceRight, "name");
+verifyNotWritable(Array.prototype.reduceRight, "name");
+verifyConfigurable(Array.prototype.reduceRight, "name");
diff --git a/test/built-ins/Array/prototype/reverse/name.js b/test/built-ins/Array/prototype/reverse/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a1be6222c3303d2b451d4817637d65d52fd31317
--- /dev/null
+++ b/test/built-ins/Array/prototype/reverse/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.20
+description: >
+  Array.prototype.reverse.name is "reverse".
+info: >
+  Array.prototype.reverse ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.reverse.name, "reverse");
+
+verifyNotEnumerable(Array.prototype.reverse, "name");
+verifyNotWritable(Array.prototype.reverse, "name");
+verifyConfigurable(Array.prototype.reverse, "name");
diff --git a/test/built-ins/Array/prototype/shift/name.js b/test/built-ins/Array/prototype/shift/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..0f0700280fa4237f93e0cd8753d1371127913046
--- /dev/null
+++ b/test/built-ins/Array/prototype/shift/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.21
+description: >
+  Array.prototype.shift.name is "shift".
+info: >
+  Array.prototype.shift ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.shift.name, "shift");
+
+verifyNotEnumerable(Array.prototype.shift, "name");
+verifyNotWritable(Array.prototype.shift, "name");
+verifyConfigurable(Array.prototype.shift, "name");
diff --git a/test/built-ins/Array/prototype/slice/name.js b/test/built-ins/Array/prototype/slice/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..1315400d38068ba1411647ddd805ecb3564b944d
--- /dev/null
+++ b/test/built-ins/Array/prototype/slice/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.22
+description: >
+  Array.prototype.slice.name is "slice".
+info: >
+  Array.prototype.slice (start, end)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.slice.name, "slice");
+
+verifyNotEnumerable(Array.prototype.slice, "name");
+verifyNotWritable(Array.prototype.slice, "name");
+verifyConfigurable(Array.prototype.slice, "name");
diff --git a/test/built-ins/Array/prototype/some/name.js b/test/built-ins/Array/prototype/some/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..c6b1d031a8e722d725f8abce68237600e0184d95
--- /dev/null
+++ b/test/built-ins/Array/prototype/some/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.23
+description: >
+  Array.prototype.some.name is "some".
+info: >
+  Array.prototype.some ( callbackfn [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.some.name, "some");
+
+verifyNotEnumerable(Array.prototype.some, "name");
+verifyNotWritable(Array.prototype.some, "name");
+verifyConfigurable(Array.prototype.some, "name");
diff --git a/test/built-ins/Array/prototype/sort/name.js b/test/built-ins/Array/prototype/sort/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..d7b9905a9522b15bfb37006ee1cecfb3481e0e29
--- /dev/null
+++ b/test/built-ins/Array/prototype/sort/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.24
+description: >
+  Array.prototype.sort.name is "sort".
+info: >
+  Array.prototype.sort (comparefn)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.sort.name, "sort");
+
+verifyNotEnumerable(Array.prototype.sort, "name");
+verifyNotWritable(Array.prototype.sort, "name");
+verifyConfigurable(Array.prototype.sort, "name");
diff --git a/test/built-ins/Array/prototype/splice/name.js b/test/built-ins/Array/prototype/splice/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..7dd3bf5e792763d354bdd38ba91cd20676040a33
--- /dev/null
+++ b/test/built-ins/Array/prototype/splice/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.25
+description: >
+  Array.prototype.splice.name is "splice".
+info: >
+  Array.prototype.splice (start, deleteCount , ...items )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.splice.name, "splice");
+
+verifyNotEnumerable(Array.prototype.splice, "name");
+verifyNotWritable(Array.prototype.splice, "name");
+verifyConfigurable(Array.prototype.splice, "name");
diff --git a/test/built-ins/Array/prototype/toLocaleString/name.js b/test/built-ins/Array/prototype/toLocaleString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..581819b6f804d38a4e551b657a85cd91d81f4208
--- /dev/null
+++ b/test/built-ins/Array/prototype/toLocaleString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.26
+description: >
+  Array.prototype.toLocaleString.name is "toLocaleString".
+info: >
+  Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.toLocaleString.name, "toLocaleString");
+
+verifyNotEnumerable(Array.prototype.toLocaleString, "name");
+verifyNotWritable(Array.prototype.toLocaleString, "name");
+verifyConfigurable(Array.prototype.toLocaleString, "name");
diff --git a/test/built-ins/Array/prototype/toString/name.js b/test/built-ins/Array/prototype/toString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..efb07edeec5166a2390ddff27e321d0d7e5f05ba
--- /dev/null
+++ b/test/built-ins/Array/prototype/toString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.27
+description: >
+  Array.prototype.toString.name is "toString".
+info: >
+  Array.prototype.toString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.toString.name, "toString");
+
+verifyNotEnumerable(Array.prototype.toString, "name");
+verifyNotWritable(Array.prototype.toString, "name");
+verifyConfigurable(Array.prototype.toString, "name");
diff --git a/test/built-ins/Array/prototype/unshift/name.js b/test/built-ins/Array/prototype/unshift/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..536c78c5e6efe5972c0ca9c22481f6749d83cb12
--- /dev/null
+++ b/test/built-ins/Array/prototype/unshift/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.3.28
+description: >
+  Array.prototype.unshift.name is "unshift".
+info: >
+  Array.prototype.unshift ( ...items )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Array.prototype.unshift.name, "unshift");
+
+verifyNotEnumerable(Array.prototype.unshift, "name");
+verifyNotWritable(Array.prototype.unshift, "name");
+verifyConfigurable(Array.prototype.unshift, "name");
diff --git a/test/built-ins/ArrayBuffer/Symbol.species/length.js b/test/built-ins/ArrayBuffer/Symbol.species/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..fe55fc4a39afa3b6417d0efd427fb2934f106c9a
--- /dev/null
+++ b/test/built-ins/ArrayBuffer/Symbol.species/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.1.3.3
+description: >
+  get ArrayBuffer [ @@species ].length is 0.
+info: >
+  get ArrayBuffer [ @@species ]
+
+  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.
+
+    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: [Symbol.species]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(ArrayBuffer, Symbol.species);
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/ArrayBuffer/symbol-species-name.js b/test/built-ins/ArrayBuffer/Symbol.species/symbol-species-name.js
similarity index 100%
rename from test/built-ins/ArrayBuffer/symbol-species-name.js
rename to test/built-ins/ArrayBuffer/Symbol.species/symbol-species-name.js
diff --git a/test/built-ins/ArrayBuffer/symbol-species.js b/test/built-ins/ArrayBuffer/Symbol.species/symbol-species.js
similarity index 100%
rename from test/built-ins/ArrayBuffer/symbol-species.js
rename to test/built-ins/ArrayBuffer/Symbol.species/symbol-species.js
diff --git a/test/built-ins/ArrayBuffer/isView/length.js b/test/built-ins/ArrayBuffer/isView/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..f08bd1662876f6205ecfa77b01c3721bf8000640
--- /dev/null
+++ b/test/built-ins/ArrayBuffer/isView/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.1.3.1
+description: >
+  ArrayBuffer.isView.length is 1.
+info: >
+  ArrayBuffer.isView ( arg )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(ArrayBuffer.isView.length, 1);
+
+verifyNotEnumerable(ArrayBuffer.isView, "length");
+verifyNotWritable(ArrayBuffer.isView, "length");
+verifyConfigurable(ArrayBuffer.isView, "length");
diff --git a/test/built-ins/ArrayBuffer/isView/name.js b/test/built-ins/ArrayBuffer/isView/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..2db379d2eb6f4fc3b0064b839e5fb5f6f2169457
--- /dev/null
+++ b/test/built-ins/ArrayBuffer/isView/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.1.3.1
+description: >
+  ArrayBuffer.isView.name is "isView".
+info: >
+  ArrayBuffer.isView ( arg )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(ArrayBuffer.isView.name, "isView");
+
+verifyNotEnumerable(ArrayBuffer.isView, "name");
+verifyNotWritable(ArrayBuffer.isView, "name");
+verifyConfigurable(ArrayBuffer.isView, "name");
diff --git a/test/built-ins/ArrayBuffer/prototype/byteLength/length.js b/test/built-ins/ArrayBuffer/prototype/byteLength/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..942f322f623f72db8ef2a5ae126e54bc203efebf
--- /dev/null
+++ b/test/built-ins/ArrayBuffer/prototype/byteLength/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.1.4.1
+description: >
+  get ArrayBuffer.prototype.byteLength.length is 0.
+info: >
+  get ArrayBuffer.prototype.byteLength
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/ArrayIteratorPrototype/next/length.js b/test/built-ins/ArrayIteratorPrototype/next/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..dfef2e6c19b2298695bf751365d67bfdb94ba78f
--- /dev/null
+++ b/test/built-ins/ArrayIteratorPrototype/next/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.5.2.1
+description: >
+  %ArrayIteratorPrototype%.next.length is 0.
+info: >
+  %ArrayIteratorPrototype%.next( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var ArrayIteratorProto = Object.getPrototypeOf([][Symbol.iterator]());
+
+assert.sameValue(ArrayIteratorProto.next.length, 0);
+
+verifyNotEnumerable(ArrayIteratorProto.next, "length");
+verifyNotWritable(ArrayIteratorProto.next, "length");
+verifyConfigurable(ArrayIteratorProto.next, "length");
diff --git a/test/built-ins/ArrayIteratorPrototype/next/name.js b/test/built-ins/ArrayIteratorPrototype/next/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..02fc021255e310b5aee82f78a867b0d8e86cbc4f
--- /dev/null
+++ b/test/built-ins/ArrayIteratorPrototype/next/name.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.1.5.2.1
+description: >
+  %ArrayIteratorPrototype%.next.name is "next".
+info: >
+  %ArrayIteratorPrototype%.next( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var ArrayIteratorProto = Object.getPrototypeOf([][Symbol.iterator]());
+
+assert.sameValue(ArrayIteratorProto.next.name, "next");
+
+verifyNotEnumerable(ArrayIteratorProto.next, "name");
+verifyNotWritable(ArrayIteratorProto.next, "name");
+verifyConfigurable(ArrayIteratorProto.next, "name");
diff --git a/test/built-ins/Boolean/prototype/toString/length.js b/test/built-ins/Boolean/prototype/toString/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..7b9efa8597c7f740e6408fd431b827eebe714277
--- /dev/null
+++ b/test/built-ins/Boolean/prototype/toString/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.3.3.2
+description: >
+  Boolean.prototype.toString.length is 0.
+info: >
+  Boolean.prototype.toString ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Boolean.prototype.toString.length, 0);
+
+verifyNotEnumerable(Boolean.prototype.toString, "length");
+verifyNotWritable(Boolean.prototype.toString, "length");
+verifyConfigurable(Boolean.prototype.toString, "length");
diff --git a/test/built-ins/Boolean/prototype/toString/name.js b/test/built-ins/Boolean/prototype/toString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..799242fbdf5e0964f72547bdf4fc1c9a0ac8b11b
--- /dev/null
+++ b/test/built-ins/Boolean/prototype/toString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.3.3.2
+description: >
+  Boolean.prototype.toString.name is "toString".
+info: >
+  Boolean.prototype.toString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Boolean.prototype.toString.name, "toString");
+
+verifyNotEnumerable(Boolean.prototype.toString, "name");
+verifyNotWritable(Boolean.prototype.toString, "name");
+verifyConfigurable(Boolean.prototype.toString, "name");
diff --git a/test/built-ins/Boolean/prototype/valueOf/length.js b/test/built-ins/Boolean/prototype/valueOf/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..2db73343269b0402b9955cc1499d52fbaebb7f31
--- /dev/null
+++ b/test/built-ins/Boolean/prototype/valueOf/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.3.3.3
+description: >
+  Boolean.prototype.valueOf.length is 0.
+info: >
+  Boolean.prototype.valueOf ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Boolean.prototype.valueOf.length, 0);
+
+verifyNotEnumerable(Boolean.prototype.valueOf, "length");
+verifyNotWritable(Boolean.prototype.valueOf, "length");
+verifyConfigurable(Boolean.prototype.valueOf, "length");
diff --git a/test/built-ins/Boolean/prototype/valueOf/name.js b/test/built-ins/Boolean/prototype/valueOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..c8c735064eb95e35abe7ef5b601f83652ac4b2c9
--- /dev/null
+++ b/test/built-ins/Boolean/prototype/valueOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.3.3.3
+description: >
+  Boolean.prototype.valueOf.name is "valueOf".
+info: >
+  Boolean.prototype.valueOf ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Boolean.prototype.valueOf.name, "valueOf");
+
+verifyNotEnumerable(Boolean.prototype.valueOf, "name");
+verifyNotWritable(Boolean.prototype.valueOf, "name");
+verifyConfigurable(Boolean.prototype.valueOf, "name");
diff --git a/test/built-ins/DataView/prototype/buffer/length.js b/test/built-ins/DataView/prototype/buffer/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..6d71e9f6c5fc3189efabb5f8bede28147f48ba5e
--- /dev/null
+++ b/test/built-ins/DataView/prototype/buffer/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.1
+description: >
+  get DataView.prototype.buffer.length is 0.
+info: >
+  get DataView.prototype.buffer
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(DataView.prototype, "buffer");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/DataView/prototype/byteLength/length.js b/test/built-ins/DataView/prototype/byteLength/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..da9e6af88e0d70707df690ae5483e8ca03f3acb2
--- /dev/null
+++ b/test/built-ins/DataView/prototype/byteLength/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.2
+description: >
+  get DataView.prototype.byteLength.length is 0.
+info: >
+  get DataView.prototype.byteLength
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(DataView.prototype, "byteLength");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/DataView/prototype/byteOffset/length.js b/test/built-ins/DataView/prototype/byteOffset/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..d6290c82bf0099f5e654b24a34bd44dc57a869e4
--- /dev/null
+++ b/test/built-ins/DataView/prototype/byteOffset/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.3
+description: >
+  get DataView.prototype.byteOffset.length is 0.
+info: >
+  get DataView.prototype.byteOffset
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(DataView.prototype, "byteOffset");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/DataView/prototype/getFloat32/length.js b/test/built-ins/DataView/prototype/getFloat32/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..e349ab252e758a342f579b676b6b52b37883e28c
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getFloat32/length.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es7id: pending
+description: >
+  DataView.prototype.getFloat32.length is 1.
+info: >
+  DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
+
+  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 }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getFloat32.length, 1);
+
+verifyNotEnumerable(DataView.prototype.getFloat32, "length");
+verifyNotWritable(DataView.prototype.getFloat32, "length");
+verifyConfigurable(DataView.prototype.getFloat32, "length");
diff --git a/test/built-ins/DataView/prototype/getFloat32/name.js b/test/built-ins/DataView/prototype/getFloat32/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..b0afb76fba4be4910672b7fff3470bc1d5d60e2b
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getFloat32/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.5
+description: >
+  DataView.prototype.getFloat32.name is "getFloat32".
+info: >
+  DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getFloat32.name, "getFloat32");
+
+verifyNotEnumerable(DataView.prototype.getFloat32, "name");
+verifyNotWritable(DataView.prototype.getFloat32, "name");
+verifyConfigurable(DataView.prototype.getFloat32, "name");
diff --git a/test/built-ins/DataView/prototype/getFloat64/length.js b/test/built-ins/DataView/prototype/getFloat64/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..5e2cb57f8c9c1861222fb8316c7e6ef6ba061fba
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getFloat64/length.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es7id: pending
+description: >
+  DataView.prototype.getFloat64.length is 1.
+info: >
+  DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
+
+  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 }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getFloat64.length, 1);
+
+verifyNotEnumerable(DataView.prototype.getFloat64, "length");
+verifyNotWritable(DataView.prototype.getFloat64, "length");
+verifyConfigurable(DataView.prototype.getFloat64, "length");
diff --git a/test/built-ins/DataView/prototype/getFloat64/name.js b/test/built-ins/DataView/prototype/getFloat64/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..7d7301c4fdbb088ba35bf0485871cdeced915c0f
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getFloat64/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.6
+description: >
+  DataView.prototype.getFloat64.name is "getFloat64".
+info: >
+  DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getFloat64.name, "getFloat64");
+
+verifyNotEnumerable(DataView.prototype.getFloat64, "name");
+verifyNotWritable(DataView.prototype.getFloat64, "name");
+verifyConfigurable(DataView.prototype.getFloat64, "name");
diff --git a/test/built-ins/DataView/prototype/getInt16/length.js b/test/built-ins/DataView/prototype/getInt16/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..cf0e589a7698ea3ec87502c5f3e33619f8309041
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getInt16/length.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es7id: pending
+description: >
+  DataView.prototype.getInt16.length is 1.
+info: >
+  DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
+
+  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 }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getInt16.length, 1);
+
+verifyNotEnumerable(DataView.prototype.getInt16, "length");
+verifyNotWritable(DataView.prototype.getInt16, "length");
+verifyConfigurable(DataView.prototype.getInt16, "length");
diff --git a/test/built-ins/DataView/prototype/getInt16/name.js b/test/built-ins/DataView/prototype/getInt16/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..b61bb435e9f3ac7d8a143a43c1ab83d14c38177e
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getInt16/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.8
+description: >
+  DataView.prototype.getInt16.name is "getInt16".
+info: >
+  DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getInt16.name, "getInt16");
+
+verifyNotEnumerable(DataView.prototype.getInt16, "name");
+verifyNotWritable(DataView.prototype.getInt16, "name");
+verifyConfigurable(DataView.prototype.getInt16, "name");
diff --git a/test/built-ins/DataView/prototype/getInt32/length.js b/test/built-ins/DataView/prototype/getInt32/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..e8651ec7f73860db2a5f9c4200d86a1faee8cb7d
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getInt32/length.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es7id: pending
+description: >
+  DataView.prototype.getInt32.length is 1.
+info: >
+  DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
+
+  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 }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getInt32.length, 1);
+
+verifyNotEnumerable(DataView.prototype.getInt32, "length");
+verifyNotWritable(DataView.prototype.getInt32, "length");
+verifyConfigurable(DataView.prototype.getInt32, "length");
diff --git a/test/built-ins/DataView/prototype/getInt32/name.js b/test/built-ins/DataView/prototype/getInt32/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..1e1e408c047dd1c1fbedc6d2d545da324c9d924f
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getInt32/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.9
+description: >
+  DataView.prototype.getInt32.name is "getInt32".
+info: >
+  DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getInt32.name, "getInt32");
+
+verifyNotEnumerable(DataView.prototype.getInt32, "name");
+verifyNotWritable(DataView.prototype.getInt32, "name");
+verifyConfigurable(DataView.prototype.getInt32, "name");
diff --git a/test/built-ins/DataView/prototype/getInt8/length.js b/test/built-ins/DataView/prototype/getInt8/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..c1ca98b45539802cff6ad9f5181000bce83e1108
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getInt8/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.7
+description: >
+  DataView.prototype.getInt8.length is 1.
+info: >
+  DataView.prototype.getInt8 ( byteOffset )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getInt8.length, 1);
+
+verifyNotEnumerable(DataView.prototype.getInt8, "length");
+verifyNotWritable(DataView.prototype.getInt8, "length");
+verifyConfigurable(DataView.prototype.getInt8, "length");
diff --git a/test/built-ins/DataView/prototype/getInt8/name.js b/test/built-ins/DataView/prototype/getInt8/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..8fb9493a549f402347365a4b151ec21087c9418f
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getInt8/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.7
+description: >
+  DataView.prototype.getInt8.name is "getInt8".
+info: >
+  DataView.prototype.getInt8 ( byteOffset )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getInt8.name, "getInt8");
+
+verifyNotEnumerable(DataView.prototype.getInt8, "name");
+verifyNotWritable(DataView.prototype.getInt8, "name");
+verifyConfigurable(DataView.prototype.getInt8, "name");
diff --git a/test/built-ins/DataView/prototype/getUint16/length.js b/test/built-ins/DataView/prototype/getUint16/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..f092ec2b5b38b6af15f97f62ed723ab77b1c983b
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getUint16/length.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es7id: pending
+description: >
+  DataView.prototype.getUint16.length is 1.
+info: >
+  DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
+
+  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 }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getUint16.length, 1);
+
+verifyNotEnumerable(DataView.prototype.getUint16, "length");
+verifyNotWritable(DataView.prototype.getUint16, "length");
+verifyConfigurable(DataView.prototype.getUint16, "length");
diff --git a/test/built-ins/DataView/prototype/getUint16/name.js b/test/built-ins/DataView/prototype/getUint16/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..754db7d7930e61917aa844b502cb93d43e414c3f
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getUint16/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.11
+description: >
+  DataView.prototype.getUint16.name is "getUint16".
+info: >
+  DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getUint16.name, "getUint16");
+
+verifyNotEnumerable(DataView.prototype.getUint16, "name");
+verifyNotWritable(DataView.prototype.getUint16, "name");
+verifyConfigurable(DataView.prototype.getUint16, "name");
diff --git a/test/built-ins/DataView/prototype/getUint32/length.js b/test/built-ins/DataView/prototype/getUint32/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..fd7f821218fd90b73842604cd95284878809f153
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getUint32/length.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es7id: pending
+description: >
+  DataView.prototype.getUint32.length is 1.
+info: >
+  DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
+
+  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 }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getUint32.length, 1);
+
+verifyNotEnumerable(DataView.prototype.getUint32, "length");
+verifyNotWritable(DataView.prototype.getUint32, "length");
+verifyConfigurable(DataView.prototype.getUint32, "length");
diff --git a/test/built-ins/DataView/prototype/getUint32/name.js b/test/built-ins/DataView/prototype/getUint32/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..fc022c26da433817ca502b69e6237b37a8be2479
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getUint32/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.12
+description: >
+  DataView.prototype.getUint32.name is "getUint32".
+info: >
+  DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getUint32.name, "getUint32");
+
+verifyNotEnumerable(DataView.prototype.getUint32, "name");
+verifyNotWritable(DataView.prototype.getUint32, "name");
+verifyConfigurable(DataView.prototype.getUint32, "name");
diff --git a/test/built-ins/DataView/prototype/getUint8/length.js b/test/built-ins/DataView/prototype/getUint8/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..cce0cd844afca25ce385708f0a884423c6d211a9
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getUint8/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.10
+description: >
+  DataView.prototype.getUint8.length is 1.
+info: >
+  DataView.prototype.getUint8 ( byteOffset )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getUint8.length, 1);
+
+verifyNotEnumerable(DataView.prototype.getUint8, "length");
+verifyNotWritable(DataView.prototype.getUint8, "length");
+verifyConfigurable(DataView.prototype.getUint8, "length");
diff --git a/test/built-ins/DataView/prototype/getUint8/name.js b/test/built-ins/DataView/prototype/getUint8/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..269197af46da2cfaf520654649fbb62d45e0390f
--- /dev/null
+++ b/test/built-ins/DataView/prototype/getUint8/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.10
+description: >
+  DataView.prototype.getUint8.name is "getUint8".
+info: >
+  DataView.prototype.getUint8 ( byteOffset )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.getUint8.name, "getUint8");
+
+verifyNotEnumerable(DataView.prototype.getUint8, "name");
+verifyNotWritable(DataView.prototype.getUint8, "name");
+verifyConfigurable(DataView.prototype.getUint8, "name");
diff --git a/test/built-ins/DataView/prototype/setFloat32/length.js b/test/built-ins/DataView/prototype/setFloat32/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..832fd7359059f94b556892ace49a03ee12229520
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setFloat32/length.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es7id: pending
+description: >
+  DataView.prototype.setFloat32.length is 2.
+info: >
+  DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
+
+  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 }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setFloat32.length, 2);
+
+verifyNotEnumerable(DataView.prototype.setFloat32, "length");
+verifyNotWritable(DataView.prototype.setFloat32, "length");
+verifyConfigurable(DataView.prototype.setFloat32, "length");
diff --git a/test/built-ins/DataView/prototype/setFloat32/name.js b/test/built-ins/DataView/prototype/setFloat32/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..6435989ebd527fed6ac2866ac87fb09d74762393
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setFloat32/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.13
+description: >
+  DataView.prototype.setFloat32.name is "setFloat32".
+info: >
+  DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setFloat32.name, "setFloat32");
+
+verifyNotEnumerable(DataView.prototype.setFloat32, "name");
+verifyNotWritable(DataView.prototype.setFloat32, "name");
+verifyConfigurable(DataView.prototype.setFloat32, "name");
diff --git a/test/built-ins/DataView/prototype/setFloat64/length.js b/test/built-ins/DataView/prototype/setFloat64/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..df566d6d3aa824138c981520f47addd50a89507e
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setFloat64/length.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es7id: pending
+description: >
+  DataView.prototype.setFloat64.length is 2.
+info: >
+  DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
+
+  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 }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setFloat64.length, 2);
+
+verifyNotEnumerable(DataView.prototype.setFloat64, "length");
+verifyNotWritable(DataView.prototype.setFloat64, "length");
+verifyConfigurable(DataView.prototype.setFloat64, "length");
diff --git a/test/built-ins/DataView/prototype/setFloat64/name.js b/test/built-ins/DataView/prototype/setFloat64/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..ffacf4048cd51e8dac1c28bb9a554a3c4a3cb25b
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setFloat64/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.14
+description: >
+  DataView.prototype.setFloat64.name is "setFloat64".
+info: >
+  DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setFloat64.name, "setFloat64");
+
+verifyNotEnumerable(DataView.prototype.setFloat64, "name");
+verifyNotWritable(DataView.prototype.setFloat64, "name");
+verifyConfigurable(DataView.prototype.setFloat64, "name");
diff --git a/test/built-ins/DataView/prototype/setInt16/length.js b/test/built-ins/DataView/prototype/setInt16/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..7685da563ec689477d7e9c132e0a770c2dd2a5cc
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setInt16/length.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es7id: pending
+description: >
+  DataView.prototype.setInt16.length is 2.
+info: >
+  DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
+
+  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 }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setInt16.length, 2);
+
+verifyNotEnumerable(DataView.prototype.setInt16, "length");
+verifyNotWritable(DataView.prototype.setInt16, "length");
+verifyConfigurable(DataView.prototype.setInt16, "length");
diff --git a/test/built-ins/DataView/prototype/setInt16/name.js b/test/built-ins/DataView/prototype/setInt16/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..44591dd4a217bec46205bba1ec01955128f4beed
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setInt16/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.16
+description: >
+  DataView.prototype.setInt16.name is "setInt16".
+info: >
+  DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setInt16.name, "setInt16");
+
+verifyNotEnumerable(DataView.prototype.setInt16, "name");
+verifyNotWritable(DataView.prototype.setInt16, "name");
+verifyConfigurable(DataView.prototype.setInt16, "name");
diff --git a/test/built-ins/DataView/prototype/setInt32/length.js b/test/built-ins/DataView/prototype/setInt32/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..5150739dfbd308d3bd61c18879213b797e1faab9
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setInt32/length.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es7id: pending
+description: >
+  DataView.prototype.setInt32.length is 2.
+info: >
+  DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
+
+  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 }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setInt32.length, 2);
+
+verifyNotEnumerable(DataView.prototype.setInt32, "length");
+verifyNotWritable(DataView.prototype.setInt32, "length");
+verifyConfigurable(DataView.prototype.setInt32, "length");
diff --git a/test/built-ins/DataView/prototype/setInt32/name.js b/test/built-ins/DataView/prototype/setInt32/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..e62e1bf463e95d07996813e785bc1d475adc6dce
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setInt32/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.17
+description: >
+  DataView.prototype.setInt32.name is "setInt32".
+info: >
+  DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setInt32.name, "setInt32");
+
+verifyNotEnumerable(DataView.prototype.setInt32, "name");
+verifyNotWritable(DataView.prototype.setInt32, "name");
+verifyConfigurable(DataView.prototype.setInt32, "name");
diff --git a/test/built-ins/DataView/prototype/setInt8/length.js b/test/built-ins/DataView/prototype/setInt8/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..8120cd2117b828cb1af086d764494463c7df584e
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setInt8/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.15
+description: >
+  DataView.prototype.setInt8.length is 2.
+info: >
+  DataView.prototype.setInt8 ( byteOffset, value )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setInt8.length, 2);
+
+verifyNotEnumerable(DataView.prototype.setInt8, "length");
+verifyNotWritable(DataView.prototype.setInt8, "length");
+verifyConfigurable(DataView.prototype.setInt8, "length");
diff --git a/test/built-ins/DataView/prototype/setInt8/name.js b/test/built-ins/DataView/prototype/setInt8/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..e0c1eafec33ee210de82cb3781eaf9a997847076
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setInt8/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.15
+description: >
+  DataView.prototype.setInt8.name is "setInt8".
+info: >
+  DataView.prototype.setInt8 ( byteOffset, value )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setInt8.name, "setInt8");
+
+verifyNotEnumerable(DataView.prototype.setInt8, "name");
+verifyNotWritable(DataView.prototype.setInt8, "name");
+verifyConfigurable(DataView.prototype.setInt8, "name");
diff --git a/test/built-ins/DataView/prototype/setUint16/length.js b/test/built-ins/DataView/prototype/setUint16/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..541d8f1f17f0a512a745bace79d0f1567c63ba52
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setUint16/length.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es7id: pending
+description: >
+  DataView.prototype.setUint16.length is 2.
+info: >
+  DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
+
+  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 }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setUint16.length, 2);
+
+verifyNotEnumerable(DataView.prototype.setUint16, "length");
+verifyNotWritable(DataView.prototype.setUint16, "length");
+verifyConfigurable(DataView.prototype.setUint16, "length");
diff --git a/test/built-ins/DataView/prototype/setUint16/name.js b/test/built-ins/DataView/prototype/setUint16/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..957241547be83880be9f7412a57425163cf38efb
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setUint16/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.19
+description: >
+  DataView.prototype.setUint16.name is "setUint16".
+info: >
+  DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setUint16.name, "setUint16");
+
+verifyNotEnumerable(DataView.prototype.setUint16, "name");
+verifyNotWritable(DataView.prototype.setUint16, "name");
+verifyConfigurable(DataView.prototype.setUint16, "name");
diff --git a/test/built-ins/DataView/prototype/setUint32/length.js b/test/built-ins/DataView/prototype/setUint32/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..ebbf330cfe64590470997d55661ca418c4ce2da8
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setUint32/length.js
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es7id: pending
+description: >
+  DataView.prototype.setUint32.length is 2.
+info: >
+  DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
+
+  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 }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setUint32.length, 2);
+
+verifyNotEnumerable(DataView.prototype.setUint32, "length");
+verifyNotWritable(DataView.prototype.setUint32, "length");
+verifyConfigurable(DataView.prototype.setUint32, "length");
diff --git a/test/built-ins/DataView/prototype/setUint32/name.js b/test/built-ins/DataView/prototype/setUint32/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..dda373f1f01d8bcc3f1aa140d6fb1fb66ed1b4fa
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setUint32/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.20
+description: >
+  DataView.prototype.setUint32.name is "setUint32".
+info: >
+  DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setUint32.name, "setUint32");
+
+verifyNotEnumerable(DataView.prototype.setUint32, "name");
+verifyNotWritable(DataView.prototype.setUint32, "name");
+verifyConfigurable(DataView.prototype.setUint32, "name");
diff --git a/test/built-ins/DataView/prototype/setUint8/length.js b/test/built-ins/DataView/prototype/setUint8/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..6c868a7da73f7b633f77f2bcafbb8702c1f61cd5
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setUint8/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.18
+description: >
+  DataView.prototype.setUint8.length is 2.
+info: >
+  DataView.prototype.setUint8 ( byteOffset, value )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setUint8.length, 2);
+
+verifyNotEnumerable(DataView.prototype.setUint8, "length");
+verifyNotWritable(DataView.prototype.setUint8, "length");
+verifyConfigurable(DataView.prototype.setUint8, "length");
diff --git a/test/built-ins/DataView/prototype/setUint8/name.js b/test/built-ins/DataView/prototype/setUint8/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..8333822b1109df6aaa444c0aa793723587e47c7e
--- /dev/null
+++ b/test/built-ins/DataView/prototype/setUint8/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.2.4.18
+description: >
+  DataView.prototype.setUint8.name is "setUint8".
+info: >
+  DataView.prototype.setUint8 ( byteOffset, value )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(DataView.prototype.setUint8.name, "setUint8");
+
+verifyNotEnumerable(DataView.prototype.setUint8, "name");
+verifyNotWritable(DataView.prototype.setUint8, "name");
+verifyConfigurable(DataView.prototype.setUint8, "name");
diff --git a/test/built-ins/Date/UTC/name.js b/test/built-ins/Date/UTC/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4f53387c1ba458ffaac36c2ac0713ddcc4ace5e3
--- /dev/null
+++ b/test/built-ins/Date/UTC/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.3.4
+description: >
+  Date.UTC.name is "UTC".
+info: >
+  Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.UTC.name, "UTC");
+
+verifyNotEnumerable(Date.UTC, "name");
+verifyNotWritable(Date.UTC, "name");
+verifyConfigurable(Date.UTC, "name");
diff --git a/test/built-ins/Date/now/name.js b/test/built-ins/Date/now/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..65c007d08637e8e9c49052ae61b4037c8d5192b4
--- /dev/null
+++ b/test/built-ins/Date/now/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.3.1
+description: >
+  Date.now.name is "now".
+info: >
+  Date.now ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.now.name, "now");
+
+verifyNotEnumerable(Date.now, "name");
+verifyNotWritable(Date.now, "name");
+verifyConfigurable(Date.now, "name");
diff --git a/test/built-ins/Date/parse/name.js b/test/built-ins/Date/parse/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..446c06b9d6595606118b6d18a23a42306db53907
--- /dev/null
+++ b/test/built-ins/Date/parse/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.3.2
+description: >
+  Date.parse.name is "parse".
+info: >
+  Date.parse ( string )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.parse.name, "parse");
+
+verifyNotEnumerable(Date.parse, "name");
+verifyNotWritable(Date.parse, "name");
+verifyConfigurable(Date.parse, "name");
diff --git a/test/built-ins/Date/prototype/getDate/name.js b/test/built-ins/Date/prototype/getDate/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4843a59d1fc3b590cbf83f00dfcaeab864c9f09d
--- /dev/null
+++ b/test/built-ins/Date/prototype/getDate/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.2
+description: >
+  Date.prototype.getDate.name is "getDate".
+info: >
+  Date.prototype.getDate ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getDate.name, "getDate");
+
+verifyNotEnumerable(Date.prototype.getDate, "name");
+verifyNotWritable(Date.prototype.getDate, "name");
+verifyConfigurable(Date.prototype.getDate, "name");
diff --git a/test/built-ins/Date/prototype/getDay/name.js b/test/built-ins/Date/prototype/getDay/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..edd034dfda839c7acd9e9fe950386468731e1ee3
--- /dev/null
+++ b/test/built-ins/Date/prototype/getDay/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.3
+description: >
+  Date.prototype.getDay.name is "getDay".
+info: >
+  Date.prototype.getDay ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getDay.name, "getDay");
+
+verifyNotEnumerable(Date.prototype.getDay, "name");
+verifyNotWritable(Date.prototype.getDay, "name");
+verifyConfigurable(Date.prototype.getDay, "name");
diff --git a/test/built-ins/Date/prototype/getFullYear/name.js b/test/built-ins/Date/prototype/getFullYear/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..9411a16df60ea9fff117326e7e67a9f928671ec9
--- /dev/null
+++ b/test/built-ins/Date/prototype/getFullYear/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.4
+description: >
+  Date.prototype.getFullYear.name is "getFullYear".
+info: >
+  Date.prototype.getFullYear ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getFullYear.name, "getFullYear");
+
+verifyNotEnumerable(Date.prototype.getFullYear, "name");
+verifyNotWritable(Date.prototype.getFullYear, "name");
+verifyConfigurable(Date.prototype.getFullYear, "name");
diff --git a/test/built-ins/Date/prototype/getHours/name.js b/test/built-ins/Date/prototype/getHours/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..d9d4008e3b94e770c3813abd7f5a2be831880ba7
--- /dev/null
+++ b/test/built-ins/Date/prototype/getHours/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.5
+description: >
+  Date.prototype.getHours.name is "getHours".
+info: >
+  Date.prototype.getHours ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getHours.name, "getHours");
+
+verifyNotEnumerable(Date.prototype.getHours, "name");
+verifyNotWritable(Date.prototype.getHours, "name");
+verifyConfigurable(Date.prototype.getHours, "name");
diff --git a/test/built-ins/Date/prototype/getMilliseconds/name.js b/test/built-ins/Date/prototype/getMilliseconds/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..31c23ad2da0b8b51be18b5ef84afdb1a89416ea8
--- /dev/null
+++ b/test/built-ins/Date/prototype/getMilliseconds/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.6
+description: >
+  Date.prototype.getMilliseconds.name is "getMilliseconds".
+info: >
+  Date.prototype.getMilliseconds ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getMilliseconds.name, "getMilliseconds");
+
+verifyNotEnumerable(Date.prototype.getMilliseconds, "name");
+verifyNotWritable(Date.prototype.getMilliseconds, "name");
+verifyConfigurable(Date.prototype.getMilliseconds, "name");
diff --git a/test/built-ins/Date/prototype/getMinutes/name.js b/test/built-ins/Date/prototype/getMinutes/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..dc5ce798eafee4eb00b31e58290a3d999e60dfce
--- /dev/null
+++ b/test/built-ins/Date/prototype/getMinutes/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.7
+description: >
+  Date.prototype.getMinutes.name is "getMinutes".
+info: >
+  Date.prototype.getMinutes ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getMinutes.name, "getMinutes");
+
+verifyNotEnumerable(Date.prototype.getMinutes, "name");
+verifyNotWritable(Date.prototype.getMinutes, "name");
+verifyConfigurable(Date.prototype.getMinutes, "name");
diff --git a/test/built-ins/Date/prototype/getMonth/name.js b/test/built-ins/Date/prototype/getMonth/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..044da6e25d505b550cb28014fb6bf38b9e75f328
--- /dev/null
+++ b/test/built-ins/Date/prototype/getMonth/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.8
+description: >
+  Date.prototype.getMonth.name is "getMonth".
+info: >
+  Date.prototype.getMonth ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getMonth.name, "getMonth");
+
+verifyNotEnumerable(Date.prototype.getMonth, "name");
+verifyNotWritable(Date.prototype.getMonth, "name");
+verifyConfigurable(Date.prototype.getMonth, "name");
diff --git a/test/built-ins/Date/prototype/getSeconds/name.js b/test/built-ins/Date/prototype/getSeconds/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..48fa7f0c92a892557d5b31a3aa0abef8c094b9c3
--- /dev/null
+++ b/test/built-ins/Date/prototype/getSeconds/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.9
+description: >
+  Date.prototype.getSeconds.name is "getSeconds".
+info: >
+  Date.prototype.getSeconds ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getSeconds.name, "getSeconds");
+
+verifyNotEnumerable(Date.prototype.getSeconds, "name");
+verifyNotWritable(Date.prototype.getSeconds, "name");
+verifyConfigurable(Date.prototype.getSeconds, "name");
diff --git a/test/built-ins/Date/prototype/getTime/name.js b/test/built-ins/Date/prototype/getTime/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..5f4ee79c70391959917c13fe911ca210bfee0df1
--- /dev/null
+++ b/test/built-ins/Date/prototype/getTime/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.10
+description: >
+  Date.prototype.getTime.name is "getTime".
+info: >
+  Date.prototype.getTime ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getTime.name, "getTime");
+
+verifyNotEnumerable(Date.prototype.getTime, "name");
+verifyNotWritable(Date.prototype.getTime, "name");
+verifyConfigurable(Date.prototype.getTime, "name");
diff --git a/test/built-ins/Date/prototype/getTimezoneOffset/name.js b/test/built-ins/Date/prototype/getTimezoneOffset/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a556b718c2c9a41bca03d5d1331b7cfd58ec67dc
--- /dev/null
+++ b/test/built-ins/Date/prototype/getTimezoneOffset/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.11
+description: >
+  Date.prototype.getTimezoneOffset.name is "getTimezoneOffset".
+info: >
+  Date.prototype.getTimezoneOffset ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getTimezoneOffset.name, "getTimezoneOffset");
+
+verifyNotEnumerable(Date.prototype.getTimezoneOffset, "name");
+verifyNotWritable(Date.prototype.getTimezoneOffset, "name");
+verifyConfigurable(Date.prototype.getTimezoneOffset, "name");
diff --git a/test/built-ins/Date/prototype/getUTCDate/name.js b/test/built-ins/Date/prototype/getUTCDate/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..66fa820c9bcef392e260318e92c33dfb588a83f9
--- /dev/null
+++ b/test/built-ins/Date/prototype/getUTCDate/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.12
+description: >
+  Date.prototype.getUTCDate.name is "getUTCDate".
+info: >
+  Date.prototype.getUTCDate ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getUTCDate.name, "getUTCDate");
+
+verifyNotEnumerable(Date.prototype.getUTCDate, "name");
+verifyNotWritable(Date.prototype.getUTCDate, "name");
+verifyConfigurable(Date.prototype.getUTCDate, "name");
diff --git a/test/built-ins/Date/prototype/getUTCDay/name.js b/test/built-ins/Date/prototype/getUTCDay/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a8d3a53cc98be854a08b16ebf8d0b78e86287054
--- /dev/null
+++ b/test/built-ins/Date/prototype/getUTCDay/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.13
+description: >
+  Date.prototype.getUTCDay.name is "getUTCDay".
+info: >
+  Date.prototype.getUTCDay ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getUTCDay.name, "getUTCDay");
+
+verifyNotEnumerable(Date.prototype.getUTCDay, "name");
+verifyNotWritable(Date.prototype.getUTCDay, "name");
+verifyConfigurable(Date.prototype.getUTCDay, "name");
diff --git a/test/built-ins/Date/prototype/getUTCFullYear/name.js b/test/built-ins/Date/prototype/getUTCFullYear/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..ff94ba40ca447a99766f81eda053b3c21a753c8c
--- /dev/null
+++ b/test/built-ins/Date/prototype/getUTCFullYear/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.14
+description: >
+  Date.prototype.getUTCFullYear.name is "getUTCFullYear".
+info: >
+  Date.prototype.getUTCFullYear ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getUTCFullYear.name, "getUTCFullYear");
+
+verifyNotEnumerable(Date.prototype.getUTCFullYear, "name");
+verifyNotWritable(Date.prototype.getUTCFullYear, "name");
+verifyConfigurable(Date.prototype.getUTCFullYear, "name");
diff --git a/test/built-ins/Date/prototype/getUTCHours/name.js b/test/built-ins/Date/prototype/getUTCHours/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..118d7b197211aa2b34210fc4754ad664d0f470b3
--- /dev/null
+++ b/test/built-ins/Date/prototype/getUTCHours/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.15
+description: >
+  Date.prototype.getUTCHours.name is "getUTCHours".
+info: >
+  Date.prototype.getUTCHours ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getUTCHours.name, "getUTCHours");
+
+verifyNotEnumerable(Date.prototype.getUTCHours, "name");
+verifyNotWritable(Date.prototype.getUTCHours, "name");
+verifyConfigurable(Date.prototype.getUTCHours, "name");
diff --git a/test/built-ins/Date/prototype/getUTCMilliseconds/name.js b/test/built-ins/Date/prototype/getUTCMilliseconds/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..e3bd65423a561c1886e4f25886fec961b2ce7a3c
--- /dev/null
+++ b/test/built-ins/Date/prototype/getUTCMilliseconds/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.16
+description: >
+  Date.prototype.getUTCMilliseconds.name is "getUTCMilliseconds".
+info: >
+  Date.prototype.getUTCMilliseconds ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getUTCMilliseconds.name, "getUTCMilliseconds");
+
+verifyNotEnumerable(Date.prototype.getUTCMilliseconds, "name");
+verifyNotWritable(Date.prototype.getUTCMilliseconds, "name");
+verifyConfigurable(Date.prototype.getUTCMilliseconds, "name");
diff --git a/test/built-ins/Date/prototype/getUTCMinutes/name.js b/test/built-ins/Date/prototype/getUTCMinutes/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..ff51f0de84ef923ffcf5bec7a2eadba2a1ae3546
--- /dev/null
+++ b/test/built-ins/Date/prototype/getUTCMinutes/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.17
+description: >
+  Date.prototype.getUTCMinutes.name is "getUTCMinutes".
+info: >
+  Date.prototype.getUTCMinutes ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getUTCMinutes.name, "getUTCMinutes");
+
+verifyNotEnumerable(Date.prototype.getUTCMinutes, "name");
+verifyNotWritable(Date.prototype.getUTCMinutes, "name");
+verifyConfigurable(Date.prototype.getUTCMinutes, "name");
diff --git a/test/built-ins/Date/prototype/getUTCMonth/name.js b/test/built-ins/Date/prototype/getUTCMonth/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..aebf599679a5ab72273553d1e2a8c2b860c96479
--- /dev/null
+++ b/test/built-ins/Date/prototype/getUTCMonth/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.18
+description: >
+  Date.prototype.getUTCMonth.name is "getUTCMonth".
+info: >
+  Date.prototype.getUTCMonth ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getUTCMonth.name, "getUTCMonth");
+
+verifyNotEnumerable(Date.prototype.getUTCMonth, "name");
+verifyNotWritable(Date.prototype.getUTCMonth, "name");
+verifyConfigurable(Date.prototype.getUTCMonth, "name");
diff --git a/test/built-ins/Date/prototype/getUTCSeconds/name.js b/test/built-ins/Date/prototype/getUTCSeconds/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..260136df29f8fb0e66f9c61b2e5e9c2b4b8d6ccb
--- /dev/null
+++ b/test/built-ins/Date/prototype/getUTCSeconds/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.19
+description: >
+  Date.prototype.getUTCSeconds.name is "getUTCSeconds".
+info: >
+  Date.prototype.getUTCSeconds ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.getUTCSeconds.name, "getUTCSeconds");
+
+verifyNotEnumerable(Date.prototype.getUTCSeconds, "name");
+verifyNotWritable(Date.prototype.getUTCSeconds, "name");
+verifyConfigurable(Date.prototype.getUTCSeconds, "name");
diff --git a/test/built-ins/Date/prototype/setDate/name.js b/test/built-ins/Date/prototype/setDate/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..8d66e4dc57be8addb453559aff63c863a4d86e23
--- /dev/null
+++ b/test/built-ins/Date/prototype/setDate/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.20
+description: >
+  Date.prototype.setDate.name is "setDate".
+info: >
+  Date.prototype.setDate ( date )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setDate.name, "setDate");
+
+verifyNotEnumerable(Date.prototype.setDate, "name");
+verifyNotWritable(Date.prototype.setDate, "name");
+verifyConfigurable(Date.prototype.setDate, "name");
diff --git a/test/built-ins/Date/prototype/setFullYear/name.js b/test/built-ins/Date/prototype/setFullYear/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..3d275444405954f361351de46aeb19a208d2c5fa
--- /dev/null
+++ b/test/built-ins/Date/prototype/setFullYear/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.21
+description: >
+  Date.prototype.setFullYear.name is "setFullYear".
+info: >
+  Date.prototype.setFullYear ( year [ , month [ , date ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setFullYear.name, "setFullYear");
+
+verifyNotEnumerable(Date.prototype.setFullYear, "name");
+verifyNotWritable(Date.prototype.setFullYear, "name");
+verifyConfigurable(Date.prototype.setFullYear, "name");
diff --git a/test/built-ins/Date/prototype/setHours/name.js b/test/built-ins/Date/prototype/setHours/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..b1f415f87fb05f6d3ca3eed2e2e676cc1c49bc07
--- /dev/null
+++ b/test/built-ins/Date/prototype/setHours/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.22
+description: >
+  Date.prototype.setHours.name is "setHours".
+info: >
+  Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setHours.name, "setHours");
+
+verifyNotEnumerable(Date.prototype.setHours, "name");
+verifyNotWritable(Date.prototype.setHours, "name");
+verifyConfigurable(Date.prototype.setHours, "name");
diff --git a/test/built-ins/Date/prototype/setMilliseconds/name.js b/test/built-ins/Date/prototype/setMilliseconds/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..ba14aaeeec1d35903fd4a3f9b7064e405c54b805
--- /dev/null
+++ b/test/built-ins/Date/prototype/setMilliseconds/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.23
+description: >
+  Date.prototype.setMilliseconds.name is "setMilliseconds".
+info: >
+  Date.prototype.setMilliseconds ( ms )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setMilliseconds.name, "setMilliseconds");
+
+verifyNotEnumerable(Date.prototype.setMilliseconds, "name");
+verifyNotWritable(Date.prototype.setMilliseconds, "name");
+verifyConfigurable(Date.prototype.setMilliseconds, "name");
diff --git a/test/built-ins/Date/prototype/setMinutes/name.js b/test/built-ins/Date/prototype/setMinutes/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4f287ade1d70d61a96281396a5b43a9f8fc0c1d1
--- /dev/null
+++ b/test/built-ins/Date/prototype/setMinutes/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.24
+description: >
+  Date.prototype.setMinutes.name is "setMinutes".
+info: >
+  Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setMinutes.name, "setMinutes");
+
+verifyNotEnumerable(Date.prototype.setMinutes, "name");
+verifyNotWritable(Date.prototype.setMinutes, "name");
+verifyConfigurable(Date.prototype.setMinutes, "name");
diff --git a/test/built-ins/Date/prototype/setMonth/name.js b/test/built-ins/Date/prototype/setMonth/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..f61a2dcfefb67feb287bf48c87231c41064e7bfd
--- /dev/null
+++ b/test/built-ins/Date/prototype/setMonth/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.25
+description: >
+  Date.prototype.setMonth.name is "setMonth".
+info: >
+  Date.prototype.setMonth ( month [ , date ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setMonth.name, "setMonth");
+
+verifyNotEnumerable(Date.prototype.setMonth, "name");
+verifyNotWritable(Date.prototype.setMonth, "name");
+verifyConfigurable(Date.prototype.setMonth, "name");
diff --git a/test/built-ins/Date/prototype/setSeconds/name.js b/test/built-ins/Date/prototype/setSeconds/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..dd06cd150b6b242d6315853b32dd0bae7d61b316
--- /dev/null
+++ b/test/built-ins/Date/prototype/setSeconds/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.26
+description: >
+  Date.prototype.setSeconds.name is "setSeconds".
+info: >
+  Date.prototype.setSeconds ( sec [ , ms ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setSeconds.name, "setSeconds");
+
+verifyNotEnumerable(Date.prototype.setSeconds, "name");
+verifyNotWritable(Date.prototype.setSeconds, "name");
+verifyConfigurable(Date.prototype.setSeconds, "name");
diff --git a/test/built-ins/Date/prototype/setTime/name.js b/test/built-ins/Date/prototype/setTime/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..b3ada24de8e63b9f71282d17e641fb1220db97bf
--- /dev/null
+++ b/test/built-ins/Date/prototype/setTime/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.27
+description: >
+  Date.prototype.setTime.name is "setTime".
+info: >
+  Date.prototype.setTime ( time )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setTime.name, "setTime");
+
+verifyNotEnumerable(Date.prototype.setTime, "name");
+verifyNotWritable(Date.prototype.setTime, "name");
+verifyConfigurable(Date.prototype.setTime, "name");
diff --git a/test/built-ins/Date/prototype/setUTCDate/name.js b/test/built-ins/Date/prototype/setUTCDate/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..be6694c4396e557f0ff50dfa8a2ff32a740a6c12
--- /dev/null
+++ b/test/built-ins/Date/prototype/setUTCDate/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.28
+description: >
+  Date.prototype.setUTCDate.name is "setUTCDate".
+info: >
+  Date.prototype.setUTCDate ( date )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setUTCDate.name, "setUTCDate");
+
+verifyNotEnumerable(Date.prototype.setUTCDate, "name");
+verifyNotWritable(Date.prototype.setUTCDate, "name");
+verifyConfigurable(Date.prototype.setUTCDate, "name");
diff --git a/test/built-ins/Date/prototype/setUTCFullYear/name.js b/test/built-ins/Date/prototype/setUTCFullYear/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..de5775833a3b5460f8f914cd9a72d72a274cecf0
--- /dev/null
+++ b/test/built-ins/Date/prototype/setUTCFullYear/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.29
+description: >
+  Date.prototype.setUTCFullYear.name is "setUTCFullYear".
+info: >
+  Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setUTCFullYear.name, "setUTCFullYear");
+
+verifyNotEnumerable(Date.prototype.setUTCFullYear, "name");
+verifyNotWritable(Date.prototype.setUTCFullYear, "name");
+verifyConfigurable(Date.prototype.setUTCFullYear, "name");
diff --git a/test/built-ins/Date/prototype/setUTCHours/name.js b/test/built-ins/Date/prototype/setUTCHours/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..ed616babd29bd376f1c0158d37d723a83c679a36
--- /dev/null
+++ b/test/built-ins/Date/prototype/setUTCHours/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.30
+description: >
+  Date.prototype.setUTCHours.name is "setUTCHours".
+info: >
+  Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setUTCHours.name, "setUTCHours");
+
+verifyNotEnumerable(Date.prototype.setUTCHours, "name");
+verifyNotWritable(Date.prototype.setUTCHours, "name");
+verifyConfigurable(Date.prototype.setUTCHours, "name");
diff --git a/test/built-ins/Date/prototype/setUTCMilliseconds/name.js b/test/built-ins/Date/prototype/setUTCMilliseconds/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..c7f78a255681a48a3f345b4ab9191592a302ae7c
--- /dev/null
+++ b/test/built-ins/Date/prototype/setUTCMilliseconds/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.31
+description: >
+  Date.prototype.setUTCMilliseconds.name is "setUTCMilliseconds".
+info: >
+  Date.prototype.setUTCMilliseconds ( ms )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setUTCMilliseconds.name, "setUTCMilliseconds");
+
+verifyNotEnumerable(Date.prototype.setUTCMilliseconds, "name");
+verifyNotWritable(Date.prototype.setUTCMilliseconds, "name");
+verifyConfigurable(Date.prototype.setUTCMilliseconds, "name");
diff --git a/test/built-ins/Date/prototype/setUTCMinutes/name.js b/test/built-ins/Date/prototype/setUTCMinutes/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..6706e7347ba11b4fe03bad0d1467dc4105ae7c58
--- /dev/null
+++ b/test/built-ins/Date/prototype/setUTCMinutes/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.32
+description: >
+  Date.prototype.setUTCMinutes.name is "setUTCMinutes".
+info: >
+  Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setUTCMinutes.name, "setUTCMinutes");
+
+verifyNotEnumerable(Date.prototype.setUTCMinutes, "name");
+verifyNotWritable(Date.prototype.setUTCMinutes, "name");
+verifyConfigurable(Date.prototype.setUTCMinutes, "name");
diff --git a/test/built-ins/Date/prototype/setUTCMonth/name.js b/test/built-ins/Date/prototype/setUTCMonth/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a23d7ccfe524f60cea58f649952735269787d7e9
--- /dev/null
+++ b/test/built-ins/Date/prototype/setUTCMonth/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.33
+description: >
+  Date.prototype.setUTCMonth.name is "setUTCMonth".
+info: >
+  Date.prototype.setUTCMonth ( month [ , date ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setUTCMonth.name, "setUTCMonth");
+
+verifyNotEnumerable(Date.prototype.setUTCMonth, "name");
+verifyNotWritable(Date.prototype.setUTCMonth, "name");
+verifyConfigurable(Date.prototype.setUTCMonth, "name");
diff --git a/test/built-ins/Date/prototype/setUTCSeconds/name.js b/test/built-ins/Date/prototype/setUTCSeconds/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..0c663b07a862bb7ce0b994797573a88c1c7aded8
--- /dev/null
+++ b/test/built-ins/Date/prototype/setUTCSeconds/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.34
+description: >
+  Date.prototype.setUTCSeconds.name is "setUTCSeconds".
+info: >
+  Date.prototype.setUTCSeconds ( sec [ , ms ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.setUTCSeconds.name, "setUTCSeconds");
+
+verifyNotEnumerable(Date.prototype.setUTCSeconds, "name");
+verifyNotWritable(Date.prototype.setUTCSeconds, "name");
+verifyConfigurable(Date.prototype.setUTCSeconds, "name");
diff --git a/test/built-ins/Date/prototype/toDateString/name.js b/test/built-ins/Date/prototype/toDateString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..b03c83b5bfd6ad8be0d94e9f5f9b9dd9b7bd3034
--- /dev/null
+++ b/test/built-ins/Date/prototype/toDateString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.35
+description: >
+  Date.prototype.toDateString.name is "toDateString".
+info: >
+  Date.prototype.toDateString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.toDateString.name, "toDateString");
+
+verifyNotEnumerable(Date.prototype.toDateString, "name");
+verifyNotWritable(Date.prototype.toDateString, "name");
+verifyConfigurable(Date.prototype.toDateString, "name");
diff --git a/test/built-ins/Date/prototype/toISOString/name.js b/test/built-ins/Date/prototype/toISOString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..24a05dd60ba1e2e648c75305241702ba107cf718
--- /dev/null
+++ b/test/built-ins/Date/prototype/toISOString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.36
+description: >
+  Date.prototype.toISOString.name is "toISOString".
+info: >
+  Date.prototype.toISOString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.toISOString.name, "toISOString");
+
+verifyNotEnumerable(Date.prototype.toISOString, "name");
+verifyNotWritable(Date.prototype.toISOString, "name");
+verifyConfigurable(Date.prototype.toISOString, "name");
diff --git a/test/built-ins/Date/prototype/toJSON/name.js b/test/built-ins/Date/prototype/toJSON/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..d6496762e791a0f89ace7ee762e0ac91ee227b45
--- /dev/null
+++ b/test/built-ins/Date/prototype/toJSON/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.37
+description: >
+  Date.prototype.toJSON.name is "toJSON".
+info: >
+  Date.prototype.toJSON ( key )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.toJSON.name, "toJSON");
+
+verifyNotEnumerable(Date.prototype.toJSON, "name");
+verifyNotWritable(Date.prototype.toJSON, "name");
+verifyConfigurable(Date.prototype.toJSON, "name");
diff --git a/test/built-ins/Date/prototype/toLocaleDateString/name.js b/test/built-ins/Date/prototype/toLocaleDateString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..cb3aa147bed3d28b893771304cf117ef8b2bdaf5
--- /dev/null
+++ b/test/built-ins/Date/prototype/toLocaleDateString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.38
+description: >
+  Date.prototype.toLocaleDateString.name is "toLocaleDateString".
+info: >
+  Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.toLocaleDateString.name, "toLocaleDateString");
+
+verifyNotEnumerable(Date.prototype.toLocaleDateString, "name");
+verifyNotWritable(Date.prototype.toLocaleDateString, "name");
+verifyConfigurable(Date.prototype.toLocaleDateString, "name");
diff --git a/test/built-ins/Date/prototype/toLocaleString/name.js b/test/built-ins/Date/prototype/toLocaleString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..855179114dcbeb03dac4c3cda2bd00eb215fc745
--- /dev/null
+++ b/test/built-ins/Date/prototype/toLocaleString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.39
+description: >
+  Date.prototype.toLocaleString.name is "toLocaleString".
+info: >
+  Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.toLocaleString.name, "toLocaleString");
+
+verifyNotEnumerable(Date.prototype.toLocaleString, "name");
+verifyNotWritable(Date.prototype.toLocaleString, "name");
+verifyConfigurable(Date.prototype.toLocaleString, "name");
diff --git a/test/built-ins/Date/prototype/toLocaleTimeString/name.js b/test/built-ins/Date/prototype/toLocaleTimeString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..63599ce2fea4fed6f0e6500b3c6d6539adedca2d
--- /dev/null
+++ b/test/built-ins/Date/prototype/toLocaleTimeString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.40
+description: >
+  Date.prototype.toLocaleTimeString.name is "toLocaleTimeString".
+info: >
+  Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.toLocaleTimeString.name, "toLocaleTimeString");
+
+verifyNotEnumerable(Date.prototype.toLocaleTimeString, "name");
+verifyNotWritable(Date.prototype.toLocaleTimeString, "name");
+verifyConfigurable(Date.prototype.toLocaleTimeString, "name");
diff --git a/test/built-ins/Date/prototype/toString/name.js b/test/built-ins/Date/prototype/toString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..edc0c064a9c23b3affc2dc5bb03aafc945e22176
--- /dev/null
+++ b/test/built-ins/Date/prototype/toString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.41
+description: >
+  Date.prototype.toString.name is "toString".
+info: >
+  Date.prototype.toString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.toString.name, "toString");
+
+verifyNotEnumerable(Date.prototype.toString, "name");
+verifyNotWritable(Date.prototype.toString, "name");
+verifyConfigurable(Date.prototype.toString, "name");
diff --git a/test/built-ins/Date/prototype/toTimeString/name.js b/test/built-ins/Date/prototype/toTimeString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..c5c766a4082e19faf4ea0e2f3e327be795613033
--- /dev/null
+++ b/test/built-ins/Date/prototype/toTimeString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.42
+description: >
+  Date.prototype.toTimeString.name is "toTimeString".
+info: >
+  Date.prototype.toTimeString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.toTimeString.name, "toTimeString");
+
+verifyNotEnumerable(Date.prototype.toTimeString, "name");
+verifyNotWritable(Date.prototype.toTimeString, "name");
+verifyConfigurable(Date.prototype.toTimeString, "name");
diff --git a/test/built-ins/Date/prototype/toUTCString/name.js b/test/built-ins/Date/prototype/toUTCString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..83dceb6deb6a1fcd84f9e3637fc77a5dc2ffaae9
--- /dev/null
+++ b/test/built-ins/Date/prototype/toUTCString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.43
+description: >
+  Date.prototype.toUTCString.name is "toUTCString".
+info: >
+  Date.prototype.toUTCString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.toUTCString.name, "toUTCString");
+
+verifyNotEnumerable(Date.prototype.toUTCString, "name");
+verifyNotWritable(Date.prototype.toUTCString, "name");
+verifyConfigurable(Date.prototype.toUTCString, "name");
diff --git a/test/built-ins/Date/prototype/valueOf/name.js b/test/built-ins/Date/prototype/valueOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..afc1d8777bcd566d406ab3d5b4337c166185f5f2
--- /dev/null
+++ b/test/built-ins/Date/prototype/valueOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.3.4.44
+description: >
+  Date.prototype.valueOf.name is "valueOf".
+info: >
+  Date.prototype.valueOf ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Date.prototype.valueOf.name, "valueOf");
+
+verifyNotEnumerable(Date.prototype.valueOf, "name");
+verifyNotWritable(Date.prototype.valueOf, "name");
+verifyConfigurable(Date.prototype.valueOf, "name");
diff --git a/test/built-ins/Error/prototype/toString/length.js b/test/built-ins/Error/prototype/toString/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..2a8f596c20c47e58c58bef9b0286a489f07fd839
--- /dev/null
+++ b/test/built-ins/Error/prototype/toString/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.3.4
+description: >
+  Error.prototype.toString.length is 0.
+info: >
+  Error.prototype.toString ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Error.prototype.toString.length, 0);
+
+verifyNotEnumerable(Error.prototype.toString, "length");
+verifyNotWritable(Error.prototype.toString, "length");
+verifyConfigurable(Error.prototype.toString, "length");
diff --git a/test/built-ins/Error/prototype/toString/name.js b/test/built-ins/Error/prototype/toString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..b9c8ffbb6efa9eb642cdbd118131ed9307137178
--- /dev/null
+++ b/test/built-ins/Error/prototype/toString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.3.4
+description: >
+  Error.prototype.toString.name is "toString".
+info: >
+  Error.prototype.toString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Error.prototype.toString.name, "toString");
+
+verifyNotEnumerable(Error.prototype.toString, "name");
+verifyNotWritable(Error.prototype.toString, "name");
+verifyConfigurable(Error.prototype.toString, "name");
diff --git a/test/built-ins/Function/prototype/apply/name.js b/test/built-ins/Function/prototype/apply/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..61a6a78d31aa123bb002b375c0b9950f6b21bb84
--- /dev/null
+++ b/test/built-ins/Function/prototype/apply/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.2.3.1
+description: >
+  Function.prototype.apply.name is "apply".
+info: >
+  Function.prototype.apply ( thisArg, argArray )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Function.prototype.apply.name, "apply");
+
+verifyNotEnumerable(Function.prototype.apply, "name");
+verifyNotWritable(Function.prototype.apply, "name");
+verifyConfigurable(Function.prototype.apply, "name");
diff --git a/test/built-ins/Function/prototype/bind/name.js b/test/built-ins/Function/prototype/bind/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..354bb50238c0d3f7e9ed1b13980084ea13bf383c
--- /dev/null
+++ b/test/built-ins/Function/prototype/bind/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.2.3.2
+description: >
+  Function.prototype.bind.name is "bind".
+info: >
+  Function.prototype.bind ( thisArg , ...args)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Function.prototype.bind.name, "bind");
+
+verifyNotEnumerable(Function.prototype.bind, "name");
+verifyNotWritable(Function.prototype.bind, "name");
+verifyConfigurable(Function.prototype.bind, "name");
diff --git a/test/built-ins/Function/prototype/call/name.js b/test/built-ins/Function/prototype/call/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..0906316c046f1bec3155c3b57e88ce786236ab7c
--- /dev/null
+++ b/test/built-ins/Function/prototype/call/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.2.3.3
+description: >
+  Function.prototype.call.name is "call".
+info: >
+  Function.prototype.call (thisArg , ...args)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Function.prototype.call.name, "call");
+
+verifyNotEnumerable(Function.prototype.call, "name");
+verifyNotWritable(Function.prototype.call, "name");
+verifyConfigurable(Function.prototype.call, "name");
diff --git a/test/built-ins/Function/prototype/toString/name.js b/test/built-ins/Function/prototype/toString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4b4cc6c298a5b77af07007a414b36585a35b6fe3
--- /dev/null
+++ b/test/built-ins/Function/prototype/toString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.2.3.5
+description: >
+  Function.prototype.toString.name is "toString".
+info: >
+  Function.prototype.toString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Function.prototype.toString.name, "toString");
+
+verifyNotEnumerable(Function.prototype.toString, "name");
+verifyNotWritable(Function.prototype.toString, "name");
+verifyConfigurable(Function.prototype.toString, "name");
diff --git a/test/built-ins/GeneratorPrototype/next/length.js b/test/built-ins/GeneratorPrototype/next/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..8660b391ad1a4bf55025295ec66535d873d948c6
--- /dev/null
+++ b/test/built-ins/GeneratorPrototype/next/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 25.3.1.2
+description: >
+  Generator.prototype.next.length is 1.
+info: >
+  Generator.prototype.next ( value )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+function* g() {}
+var GeneratorPrototype = Object.getPrototypeOf(g).prototype;
+
+assert.sameValue(GeneratorPrototype.next.length, 1);
+
+verifyNotEnumerable(GeneratorPrototype.next, "length");
+verifyNotWritable(GeneratorPrototype.next, "length");
+verifyConfigurable(GeneratorPrototype.next, "length");
diff --git a/test/built-ins/GeneratorPrototype/next/name.js b/test/built-ins/GeneratorPrototype/next/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a71fec48e0d8b9cd00fac75b0a61e0689e19009c
--- /dev/null
+++ b/test/built-ins/GeneratorPrototype/next/name.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 25.3.1.2
+description: >
+  Generator.prototype.next.name is "next".
+info: >
+  Generator.prototype.next ( value )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+function* g() {}
+var GeneratorPrototype = Object.getPrototypeOf(g).prototype;
+
+assert.sameValue(GeneratorPrototype.next.name, "next");
+
+verifyNotEnumerable(GeneratorPrototype.next, "name");
+verifyNotWritable(GeneratorPrototype.next, "name");
+verifyConfigurable(GeneratorPrototype.next, "name");
diff --git a/test/built-ins/GeneratorPrototype/return/length.js b/test/built-ins/GeneratorPrototype/return/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..fd7e72aa527973ea520c4ab0d0a36606601c1c94
--- /dev/null
+++ b/test/built-ins/GeneratorPrototype/return/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 25.3.1.3
+description: >
+  Generator.prototype.return.length is 1.
+info: >
+  Generator.prototype.return ( value )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+function* g() {}
+var GeneratorPrototype = Object.getPrototypeOf(g).prototype;
+
+assert.sameValue(GeneratorPrototype.return.length, 1);
+
+verifyNotEnumerable(GeneratorPrototype.return, "length");
+verifyNotWritable(GeneratorPrototype.return, "length");
+verifyConfigurable(GeneratorPrototype.return, "length");
diff --git a/test/built-ins/GeneratorPrototype/return/name.js b/test/built-ins/GeneratorPrototype/return/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..79f1df8c19a7d0147d986e0b7c25777809dc1380
--- /dev/null
+++ b/test/built-ins/GeneratorPrototype/return/name.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 25.3.1.3
+description: >
+  Generator.prototype.return.name is "return".
+info: >
+  Generator.prototype.return ( value )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+function* g() {}
+var GeneratorPrototype = Object.getPrototypeOf(g).prototype;
+
+assert.sameValue(GeneratorPrototype.return.name, "return");
+
+verifyNotEnumerable(GeneratorPrototype.return, "name");
+verifyNotWritable(GeneratorPrototype.return, "name");
+verifyConfigurable(GeneratorPrototype.return, "name");
diff --git a/test/built-ins/GeneratorPrototype/throw/length.js b/test/built-ins/GeneratorPrototype/throw/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..ecd05a4581802c74d94ae71596e42787f8cde6dc
--- /dev/null
+++ b/test/built-ins/GeneratorPrototype/throw/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 25.3.1.4
+description: >
+  Generator.prototype.throw.length is 1.
+info: >
+  Generator.prototype.throw ( exception )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+function* g() {}
+var GeneratorPrototype = Object.getPrototypeOf(g).prototype;
+
+assert.sameValue(GeneratorPrototype.throw.length, 1);
+
+verifyNotEnumerable(GeneratorPrototype.throw, "length");
+verifyNotWritable(GeneratorPrototype.throw, "length");
+verifyConfigurable(GeneratorPrototype.throw, "length");
diff --git a/test/built-ins/GeneratorPrototype/throw/name.js b/test/built-ins/GeneratorPrototype/throw/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..f005b26d21eababf71fdb4a699e899e939c22d64
--- /dev/null
+++ b/test/built-ins/GeneratorPrototype/throw/name.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 25.3.1.4
+description: >
+  Generator.prototype.throw.name is "throw".
+info: >
+  Generator.prototype.throw ( exception )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+function* g() {}
+var GeneratorPrototype = Object.getPrototypeOf(g).prototype;
+
+assert.sameValue(GeneratorPrototype.throw.name, "throw");
+
+verifyNotEnumerable(GeneratorPrototype.throw, "name");
+verifyNotWritable(GeneratorPrototype.throw, "name");
+verifyConfigurable(GeneratorPrototype.throw, "name");
diff --git a/test/built-ins/JSON/parse/name.js b/test/built-ins/JSON/parse/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..860527209e13130cec5b6abcf034aea38de58e23
--- /dev/null
+++ b/test/built-ins/JSON/parse/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.3.1
+description: >
+  JSON.parse.name is "parse".
+info: >
+  JSON.parse ( text [ , reviver ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(JSON.parse.name, "parse");
+
+verifyNotEnumerable(JSON.parse, "name");
+verifyNotWritable(JSON.parse, "name");
+verifyConfigurable(JSON.parse, "name");
diff --git a/test/built-ins/JSON/stringify/name.js b/test/built-ins/JSON/stringify/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..907632faba54d214fe04052e043672a060141c11
--- /dev/null
+++ b/test/built-ins/JSON/stringify/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 24.3.2
+description: >
+  JSON.stringify.name is "stringify".
+info: >
+  JSON.stringify ( value [ , replacer [ , space ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(JSON.stringify.name, "stringify");
+
+verifyNotEnumerable(JSON.stringify, "name");
+verifyNotWritable(JSON.stringify, "name");
+verifyConfigurable(JSON.stringify, "name");
diff --git a/test/built-ins/Map/Symbol.species/length.js b/test/built-ins/Map/Symbol.species/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..156755e3644b1bf7ac63e2dd48f089c3551f441f
--- /dev/null
+++ b/test/built-ins/Map/Symbol.species/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 23.1.2.2
+description: >
+  get Map [ @@species ].length is 0.
+info: >
+  get Map [ @@species ]
+
+  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.
+
+    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: [Symbol.species]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(Map, Symbol.species);
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/Map/symbol-species-name.js b/test/built-ins/Map/Symbol.species/symbol-species-name.js
similarity index 100%
rename from test/built-ins/Map/symbol-species-name.js
rename to test/built-ins/Map/Symbol.species/symbol-species-name.js
diff --git a/test/built-ins/Map/symbol-species.js b/test/built-ins/Map/Symbol.species/symbol-species.js
similarity index 100%
rename from test/built-ins/Map/symbol-species.js
rename to test/built-ins/Map/Symbol.species/symbol-species.js
diff --git a/test/built-ins/MapIteratorPrototype/next/length.js b/test/built-ins/MapIteratorPrototype/next/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..782a0ba9d70cb029dec93ae00499bc15c27acb78
--- /dev/null
+++ b/test/built-ins/MapIteratorPrototype/next/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 23.1.5.2.1
+description: >
+  %MapIteratorPrototype%.next.length is 0.
+info: >
+  %MapIteratorPrototype%.next ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var MapIteratorProto = Object.getPrototypeOf(new Map().values());
+
+assert.sameValue(MapIteratorProto.next.length, 0);
+
+verifyNotEnumerable(MapIteratorProto.next, "length");
+verifyNotWritable(MapIteratorProto.next, "length");
+verifyConfigurable(MapIteratorProto.next, "length");
diff --git a/test/built-ins/MapIteratorPrototype/next/name.js b/test/built-ins/MapIteratorPrototype/next/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..b7a7dde7ddb71f9e4c54373418364e77a7314182
--- /dev/null
+++ b/test/built-ins/MapIteratorPrototype/next/name.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 23.1.5.2.1
+description: >
+  %MapIteratorPrototype%.next.name is "next".
+info: >
+  %MapIteratorPrototype%.next ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var MapIteratorProto = Object.getPrototypeOf(new Map().values());
+
+assert.sameValue(MapIteratorProto.next.name, "next");
+
+verifyNotEnumerable(MapIteratorProto.next, "name");
+verifyNotWritable(MapIteratorProto.next, "name");
+verifyConfigurable(MapIteratorProto.next, "name");
diff --git a/test/built-ins/Math/abs/length.js b/test/built-ins/Math/abs/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..9cc5cd961459047e8113addd7f12a766ffa0c2a3
--- /dev/null
+++ b/test/built-ins/Math/abs/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.1
+description: >
+  Math.abs.length is 1.
+info: >
+  Math.abs ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.abs.length, 1);
+
+verifyNotEnumerable(Math.abs, "length");
+verifyNotWritable(Math.abs, "length");
+verifyConfigurable(Math.abs, "length");
diff --git a/test/built-ins/Math/abs/name.js b/test/built-ins/Math/abs/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..c5cd3a4d5c707368ecb936353ac16f714c089398
--- /dev/null
+++ b/test/built-ins/Math/abs/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.1
+description: >
+  Math.abs.name is "abs".
+info: >
+  Math.abs ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.abs.name, "abs");
+
+verifyNotEnumerable(Math.abs, "name");
+verifyNotWritable(Math.abs, "name");
+verifyConfigurable(Math.abs, "name");
diff --git a/test/built-ins/Math/acos/length.js b/test/built-ins/Math/acos/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..b46ffcf132890cbdbb77b48c227c2624c98a1dec
--- /dev/null
+++ b/test/built-ins/Math/acos/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.2
+description: >
+  Math.acos.length is 1.
+info: >
+  Math.acos ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.acos.length, 1);
+
+verifyNotEnumerable(Math.acos, "length");
+verifyNotWritable(Math.acos, "length");
+verifyConfigurable(Math.acos, "length");
diff --git a/test/built-ins/Math/acos/name.js b/test/built-ins/Math/acos/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..9a32db7200099a2e2038e92b54a388042883df34
--- /dev/null
+++ b/test/built-ins/Math/acos/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.2
+description: >
+  Math.acos.name is "acos".
+info: >
+  Math.acos ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.acos.name, "acos");
+
+verifyNotEnumerable(Math.acos, "name");
+verifyNotWritable(Math.acos, "name");
+verifyConfigurable(Math.acos, "name");
diff --git a/test/built-ins/Math/acosh/name.js b/test/built-ins/Math/acosh/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4f6af5da8ffbfe664e1f1757f68442be70cc4e9e
--- /dev/null
+++ b/test/built-ins/Math/acosh/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.3
+description: >
+  Math.acosh.name is "acosh".
+info: >
+  Math.acosh ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.acosh.name, "acosh");
+
+verifyNotEnumerable(Math.acosh, "name");
+verifyNotWritable(Math.acosh, "name");
+verifyConfigurable(Math.acosh, "name");
diff --git a/test/built-ins/Math/asin/length.js b/test/built-ins/Math/asin/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..b1157190862f735490a676290bc6daffe36b4a70
--- /dev/null
+++ b/test/built-ins/Math/asin/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.4
+description: >
+  Math.asin.length is 1.
+info: >
+  Math.asin ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.asin.length, 1);
+
+verifyNotEnumerable(Math.asin, "length");
+verifyNotWritable(Math.asin, "length");
+verifyConfigurable(Math.asin, "length");
diff --git a/test/built-ins/Math/asin/name.js b/test/built-ins/Math/asin/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4d5ff0d2947bffea9aab5938a986a49e6f3e232c
--- /dev/null
+++ b/test/built-ins/Math/asin/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.4
+description: >
+  Math.asin.name is "asin".
+info: >
+  Math.asin ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.asin.name, "asin");
+
+verifyNotEnumerable(Math.asin, "name");
+verifyNotWritable(Math.asin, "name");
+verifyConfigurable(Math.asin, "name");
diff --git a/test/built-ins/Math/asinh/name.js b/test/built-ins/Math/asinh/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..e9c9bfc6f6a2a9201f09df12df22eeeb30b9ba30
--- /dev/null
+++ b/test/built-ins/Math/asinh/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.5
+description: >
+  Math.asinh.name is "asinh".
+info: >
+  Math.asinh ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.asinh.name, "asinh");
+
+verifyNotEnumerable(Math.asinh, "name");
+verifyNotWritable(Math.asinh, "name");
+verifyConfigurable(Math.asinh, "name");
diff --git a/test/built-ins/Math/atan/length.js b/test/built-ins/Math/atan/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..15a384988cd12937e9c97fcceafdab00c0482187
--- /dev/null
+++ b/test/built-ins/Math/atan/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.6
+description: >
+  Math.atan.length is 1.
+info: >
+  Math.atan ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.atan.length, 1);
+
+verifyNotEnumerable(Math.atan, "length");
+verifyNotWritable(Math.atan, "length");
+verifyConfigurable(Math.atan, "length");
diff --git a/test/built-ins/Math/atan/name.js b/test/built-ins/Math/atan/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..83e6648515d18527b6213b08b635c906ad90c16e
--- /dev/null
+++ b/test/built-ins/Math/atan/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.6
+description: >
+  Math.atan.name is "atan".
+info: >
+  Math.atan ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.atan.name, "atan");
+
+verifyNotEnumerable(Math.atan, "name");
+verifyNotWritable(Math.atan, "name");
+verifyConfigurable(Math.atan, "name");
diff --git a/test/built-ins/Math/atan2/length.js b/test/built-ins/Math/atan2/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..59ab3355e4522b5a7d7d2cee6bec105dee2802b1
--- /dev/null
+++ b/test/built-ins/Math/atan2/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.8
+description: >
+  Math.atan2.length is 2.
+info: >
+  Math.atan2 ( y, x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.atan2.length, 2);
+
+verifyNotEnumerable(Math.atan2, "length");
+verifyNotWritable(Math.atan2, "length");
+verifyConfigurable(Math.atan2, "length");
diff --git a/test/built-ins/Math/atan2/name.js b/test/built-ins/Math/atan2/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..3adfffcb91df99dee94c461c552a97f779a107e9
--- /dev/null
+++ b/test/built-ins/Math/atan2/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.8
+description: >
+  Math.atan2.name is "atan2".
+info: >
+  Math.atan2 ( y, x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.atan2.name, "atan2");
+
+verifyNotEnumerable(Math.atan2, "name");
+verifyNotWritable(Math.atan2, "name");
+verifyConfigurable(Math.atan2, "name");
diff --git a/test/built-ins/Math/atanh/name.js b/test/built-ins/Math/atanh/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..e7d281ce63c2e7038eec8082f338d16229d4c406
--- /dev/null
+++ b/test/built-ins/Math/atanh/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.7
+description: >
+  Math.atanh.name is "atanh".
+info: >
+  Math.atanh ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.atanh.name, "atanh");
+
+verifyNotEnumerable(Math.atanh, "name");
+verifyNotWritable(Math.atanh, "name");
+verifyConfigurable(Math.atanh, "name");
diff --git a/test/built-ins/Math/cbrt/name.js b/test/built-ins/Math/cbrt/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..c0c77c9dcce663e448065d097433daa024c9df85
--- /dev/null
+++ b/test/built-ins/Math/cbrt/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.9
+description: >
+  Math.cbrt.name is "cbrt".
+info: >
+  Math.cbrt ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.cbrt.name, "cbrt");
+
+verifyNotEnumerable(Math.cbrt, "name");
+verifyNotWritable(Math.cbrt, "name");
+verifyConfigurable(Math.cbrt, "name");
diff --git a/test/built-ins/Math/ceil/length.js b/test/built-ins/Math/ceil/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..efd211725833212111635cd185cb73b0f4bb7da0
--- /dev/null
+++ b/test/built-ins/Math/ceil/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.10
+description: >
+  Math.ceil.length is 1.
+info: >
+  Math.ceil ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.ceil.length, 1);
+
+verifyNotEnumerable(Math.ceil, "length");
+verifyNotWritable(Math.ceil, "length");
+verifyConfigurable(Math.ceil, "length");
diff --git a/test/built-ins/Math/ceil/name.js b/test/built-ins/Math/ceil/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..950cafe19b4774f1b0e02bc8f578d7f74f031ed2
--- /dev/null
+++ b/test/built-ins/Math/ceil/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.10
+description: >
+  Math.ceil.name is "ceil".
+info: >
+  Math.ceil ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.ceil.name, "ceil");
+
+verifyNotEnumerable(Math.ceil, "name");
+verifyNotWritable(Math.ceil, "name");
+verifyConfigurable(Math.ceil, "name");
diff --git a/test/built-ins/Math/clz32/length.js b/test/built-ins/Math/clz32/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..0b1151944ac2b69fb5d31c55109eb0a5b2ae597a
--- /dev/null
+++ b/test/built-ins/Math/clz32/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.11
+description: >
+  Math.clz32.length is 1.
+info: >
+  Math.clz32 ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.clz32.length, 1);
+
+verifyNotEnumerable(Math.clz32, "length");
+verifyNotWritable(Math.clz32, "length");
+verifyConfigurable(Math.clz32, "length");
diff --git a/test/built-ins/Math/clz32/name.js b/test/built-ins/Math/clz32/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..7e99ef9046281053177afde25f69dca2b0752f83
--- /dev/null
+++ b/test/built-ins/Math/clz32/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.11
+description: >
+  Math.clz32.name is "clz32".
+info: >
+  Math.clz32 ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.clz32.name, "clz32");
+
+verifyNotEnumerable(Math.clz32, "name");
+verifyNotWritable(Math.clz32, "name");
+verifyConfigurable(Math.clz32, "name");
diff --git a/test/built-ins/Math/cos/length.js b/test/built-ins/Math/cos/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..e7e5f69c3e054e5b41624edacdac3baa1c57bad5
--- /dev/null
+++ b/test/built-ins/Math/cos/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.12
+description: >
+  Math.cos.length is 1.
+info: >
+  Math.cos ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.cos.length, 1);
+
+verifyNotEnumerable(Math.cos, "length");
+verifyNotWritable(Math.cos, "length");
+verifyConfigurable(Math.cos, "length");
diff --git a/test/built-ins/Math/cos/name.js b/test/built-ins/Math/cos/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..916482e9f995b076ad0b8f7d35d3e18d1fef52cf
--- /dev/null
+++ b/test/built-ins/Math/cos/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.12
+description: >
+  Math.cos.name is "cos".
+info: >
+  Math.cos ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.cos.name, "cos");
+
+verifyNotEnumerable(Math.cos, "name");
+verifyNotWritable(Math.cos, "name");
+verifyConfigurable(Math.cos, "name");
diff --git a/test/built-ins/Math/cosh/name.js b/test/built-ins/Math/cosh/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..9dcbb2f2ba377d03ec7aabad37ef981d3c3df2f9
--- /dev/null
+++ b/test/built-ins/Math/cosh/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.13
+description: >
+  Math.cosh.name is "cosh".
+info: >
+  Math.cosh ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.cosh.name, "cosh");
+
+verifyNotEnumerable(Math.cosh, "name");
+verifyNotWritable(Math.cosh, "name");
+verifyConfigurable(Math.cosh, "name");
diff --git a/test/built-ins/Math/exp/length.js b/test/built-ins/Math/exp/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..bcbd7221148e66bed97eca9057865ac9c5518adb
--- /dev/null
+++ b/test/built-ins/Math/exp/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.14
+description: >
+  Math.exp.length is 1.
+info: >
+  Math.exp ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.exp.length, 1);
+
+verifyNotEnumerable(Math.exp, "length");
+verifyNotWritable(Math.exp, "length");
+verifyConfigurable(Math.exp, "length");
diff --git a/test/built-ins/Math/exp/name.js b/test/built-ins/Math/exp/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..6caabb859daef2c69f63e0479ce60ef805ae6216
--- /dev/null
+++ b/test/built-ins/Math/exp/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.14
+description: >
+  Math.exp.name is "exp".
+info: >
+  Math.exp ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.exp.name, "exp");
+
+verifyNotEnumerable(Math.exp, "name");
+verifyNotWritable(Math.exp, "name");
+verifyConfigurable(Math.exp, "name");
diff --git a/test/built-ins/Math/expm1/name.js b/test/built-ins/Math/expm1/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..03521eccaa335ec108aa9367b8c379ef13506b76
--- /dev/null
+++ b/test/built-ins/Math/expm1/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.15
+description: >
+  Math.expm1.name is "expm1".
+info: >
+  Math.expm1 ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.expm1.name, "expm1");
+
+verifyNotEnumerable(Math.expm1, "name");
+verifyNotWritable(Math.expm1, "name");
+verifyConfigurable(Math.expm1, "name");
diff --git a/test/built-ins/Math/floor/length.js b/test/built-ins/Math/floor/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..a5634c8a28c65dbf898dc3e88a10aa9f69902720
--- /dev/null
+++ b/test/built-ins/Math/floor/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.16
+description: >
+  Math.floor.length is 1.
+info: >
+  Math.floor ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.floor.length, 1);
+
+verifyNotEnumerable(Math.floor, "length");
+verifyNotWritable(Math.floor, "length");
+verifyConfigurable(Math.floor, "length");
diff --git a/test/built-ins/Math/floor/name.js b/test/built-ins/Math/floor/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..0b9631da1b9bd6b5b5b965d8dd5752904086765b
--- /dev/null
+++ b/test/built-ins/Math/floor/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.16
+description: >
+  Math.floor.name is "floor".
+info: >
+  Math.floor ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.floor.name, "floor");
+
+verifyNotEnumerable(Math.floor, "name");
+verifyNotWritable(Math.floor, "name");
+verifyConfigurable(Math.floor, "name");
diff --git a/test/built-ins/Math/fround/length.js b/test/built-ins/Math/fround/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..483abce16aeaaa8f8bb1e3db3126e486513c91f6
--- /dev/null
+++ b/test/built-ins/Math/fround/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.17
+description: >
+  Math.fround.length is 1.
+info: >
+  Math.fround ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.fround.length, 1);
+
+verifyNotEnumerable(Math.fround, "length");
+verifyNotWritable(Math.fround, "length");
+verifyConfigurable(Math.fround, "length");
diff --git a/test/built-ins/Math/fround/name.js b/test/built-ins/Math/fround/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..bf28cd19aa2b910f93501bcc329bbbf06bd45984
--- /dev/null
+++ b/test/built-ins/Math/fround/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.17
+description: >
+  Math.fround.name is "fround".
+info: >
+  Math.fround ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.fround.name, "fround");
+
+verifyNotEnumerable(Math.fround, "name");
+verifyNotWritable(Math.fround, "name");
+verifyConfigurable(Math.fround, "name");
diff --git a/test/built-ins/Math/hypot/name.js b/test/built-ins/Math/hypot/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..34e55b50154c552be13169b4324d725bba6081cb
--- /dev/null
+++ b/test/built-ins/Math/hypot/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.18
+description: >
+  Math.hypot.name is "hypot".
+info: >
+  Math.hypot ( value1 , value2 , …values )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.hypot.name, "hypot");
+
+verifyNotEnumerable(Math.hypot, "name");
+verifyNotWritable(Math.hypot, "name");
+verifyConfigurable(Math.hypot, "name");
diff --git a/test/built-ins/Math/imul/name.js b/test/built-ins/Math/imul/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..cf6c423bdf61722f241a57948a17c1a7cb16f50c
--- /dev/null
+++ b/test/built-ins/Math/imul/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.19
+description: >
+  Math.imul.name is "imul".
+info: >
+  Math.imul ( x, y )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.imul.name, "imul");
+
+verifyNotEnumerable(Math.imul, "name");
+verifyNotWritable(Math.imul, "name");
+verifyConfigurable(Math.imul, "name");
diff --git a/test/built-ins/Math/log/length.js b/test/built-ins/Math/log/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..ecc44d548c5be45716af2fd4f065ee9e1783de72
--- /dev/null
+++ b/test/built-ins/Math/log/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.20
+description: >
+  Math.log.length is 1.
+info: >
+  Math.log ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.log.length, 1);
+
+verifyNotEnumerable(Math.log, "length");
+verifyNotWritable(Math.log, "length");
+verifyConfigurable(Math.log, "length");
diff --git a/test/built-ins/Math/log/name.js b/test/built-ins/Math/log/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..bd46dbaaf1060c14a58a73d5dcba4d08dbc1eb6d
--- /dev/null
+++ b/test/built-ins/Math/log/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.20
+description: >
+  Math.log.name is "log".
+info: >
+  Math.log ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.log.name, "log");
+
+verifyNotEnumerable(Math.log, "name");
+verifyNotWritable(Math.log, "name");
+verifyConfigurable(Math.log, "name");
diff --git a/test/built-ins/Math/log10/name.js b/test/built-ins/Math/log10/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..11c345823916160bf278703715588f885158dad1
--- /dev/null
+++ b/test/built-ins/Math/log10/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.22
+description: >
+  Math.log10.name is "log10".
+info: >
+  Math.log10 ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.log10.name, "log10");
+
+verifyNotEnumerable(Math.log10, "name");
+verifyNotWritable(Math.log10, "name");
+verifyConfigurable(Math.log10, "name");
diff --git a/test/built-ins/Math/log1p/name.js b/test/built-ins/Math/log1p/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..7f5048b9e5a7088ec35b61d52e163b4cf0c258eb
--- /dev/null
+++ b/test/built-ins/Math/log1p/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.21
+description: >
+  Math.log1p.name is "log1p".
+info: >
+  Math.log1p ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.log1p.name, "log1p");
+
+verifyNotEnumerable(Math.log1p, "name");
+verifyNotWritable(Math.log1p, "name");
+verifyConfigurable(Math.log1p, "name");
diff --git a/test/built-ins/Math/log2/name.js b/test/built-ins/Math/log2/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4b319a067488e141028ac0c0db127f89ed5df7ae
--- /dev/null
+++ b/test/built-ins/Math/log2/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.23
+description: >
+  Math.log2.name is "log2".
+info: >
+  Math.log2 ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.log2.name, "log2");
+
+verifyNotEnumerable(Math.log2, "name");
+verifyNotWritable(Math.log2, "name");
+verifyConfigurable(Math.log2, "name");
diff --git a/test/built-ins/Math/max/name.js b/test/built-ins/Math/max/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..e641093676d421865007aec2b8c135963e373f73
--- /dev/null
+++ b/test/built-ins/Math/max/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.24
+description: >
+  Math.max.name is "max".
+info: >
+  Math.max ( value1, value2 , …values )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.max.name, "max");
+
+verifyNotEnumerable(Math.max, "name");
+verifyNotWritable(Math.max, "name");
+verifyConfigurable(Math.max, "name");
diff --git a/test/built-ins/Math/min/name.js b/test/built-ins/Math/min/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..65e0cb2a90e35903695521b8f080bb3bd5a8b42e
--- /dev/null
+++ b/test/built-ins/Math/min/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.25
+description: >
+  Math.min.name is "min".
+info: >
+  Math.min ( value1, value2 , …values )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.min.name, "min");
+
+verifyNotEnumerable(Math.min, "name");
+verifyNotWritable(Math.min, "name");
+verifyConfigurable(Math.min, "name");
diff --git a/test/built-ins/Math/pow/length.js b/test/built-ins/Math/pow/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..7c893b6240dc93bca96d210819dbe6e6ea3615af
--- /dev/null
+++ b/test/built-ins/Math/pow/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.26
+description: >
+  Math.pow.length is 2.
+info: >
+  Math.pow ( x, y )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.pow.length, 2);
+
+verifyNotEnumerable(Math.pow, "length");
+verifyNotWritable(Math.pow, "length");
+verifyConfigurable(Math.pow, "length");
diff --git a/test/built-ins/Math/pow/name.js b/test/built-ins/Math/pow/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..1657ad9094782d02a692a10e66aa781ba0a57b05
--- /dev/null
+++ b/test/built-ins/Math/pow/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.26
+description: >
+  Math.pow.name is "pow".
+info: >
+  Math.pow ( x, y )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.pow.name, "pow");
+
+verifyNotEnumerable(Math.pow, "name");
+verifyNotWritable(Math.pow, "name");
+verifyConfigurable(Math.pow, "name");
diff --git a/test/built-ins/Math/random/length.js b/test/built-ins/Math/random/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..e89981dafb53d91f04f5ce0e2ac997c587d3d3eb
--- /dev/null
+++ b/test/built-ins/Math/random/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.27
+description: >
+  Math.random.length is 0.
+info: >
+  Math.random ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.random.length, 0);
+
+verifyNotEnumerable(Math.random, "length");
+verifyNotWritable(Math.random, "length");
+verifyConfigurable(Math.random, "length");
diff --git a/test/built-ins/Math/random/name.js b/test/built-ins/Math/random/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..c47025da553d62466857a73d6ec7a99217423987
--- /dev/null
+++ b/test/built-ins/Math/random/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.27
+description: >
+  Math.random.name is "random".
+info: >
+  Math.random ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.random.name, "random");
+
+verifyNotEnumerable(Math.random, "name");
+verifyNotWritable(Math.random, "name");
+verifyConfigurable(Math.random, "name");
diff --git a/test/built-ins/Math/round/length.js b/test/built-ins/Math/round/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..071f6820f199d41046e30e03da5d205252df3609
--- /dev/null
+++ b/test/built-ins/Math/round/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.28
+description: >
+  Math.round.length is 1.
+info: >
+  Math.round ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.round.length, 1);
+
+verifyNotEnumerable(Math.round, "length");
+verifyNotWritable(Math.round, "length");
+verifyConfigurable(Math.round, "length");
diff --git a/test/built-ins/Math/round/name.js b/test/built-ins/Math/round/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4c71bfe8d761cace6a4905365a4c8016bf7cb146
--- /dev/null
+++ b/test/built-ins/Math/round/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.28
+description: >
+  Math.round.name is "round".
+info: >
+  Math.round ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.round.name, "round");
+
+verifyNotEnumerable(Math.round, "name");
+verifyNotWritable(Math.round, "name");
+verifyConfigurable(Math.round, "name");
diff --git a/test/built-ins/Math/sign/name.js b/test/built-ins/Math/sign/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..89cbe60204c8dcedb6b69dfead79de6460c42f5a
--- /dev/null
+++ b/test/built-ins/Math/sign/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.29
+description: >
+  Math.sign.name is "sign".
+info: >
+  Math.sign ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.sign.name, "sign");
+
+verifyNotEnumerable(Math.sign, "name");
+verifyNotWritable(Math.sign, "name");
+verifyConfigurable(Math.sign, "name");
diff --git a/test/built-ins/Math/sin/length.js b/test/built-ins/Math/sin/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..55d6e5e8ebd2f9d7e69eb5d605bac841c8292c79
--- /dev/null
+++ b/test/built-ins/Math/sin/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.30
+description: >
+  Math.sin.length is 1.
+info: >
+  Math.sin ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.sin.length, 1);
+
+verifyNotEnumerable(Math.sin, "length");
+verifyNotWritable(Math.sin, "length");
+verifyConfigurable(Math.sin, "length");
diff --git a/test/built-ins/Math/sin/name.js b/test/built-ins/Math/sin/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..dec5bcf6615883a7396c3efdde3975c3b0dc2f43
--- /dev/null
+++ b/test/built-ins/Math/sin/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.30
+description: >
+  Math.sin.name is "sin".
+info: >
+  Math.sin ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.sin.name, "sin");
+
+verifyNotEnumerable(Math.sin, "name");
+verifyNotWritable(Math.sin, "name");
+verifyConfigurable(Math.sin, "name");
diff --git a/test/built-ins/Math/sinh/name.js b/test/built-ins/Math/sinh/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..2ff1a269c57e3724283c355f66e3857a978db9db
--- /dev/null
+++ b/test/built-ins/Math/sinh/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.31
+description: >
+  Math.sinh.name is "sinh".
+info: >
+  Math.sinh ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.sinh.name, "sinh");
+
+verifyNotEnumerable(Math.sinh, "name");
+verifyNotWritable(Math.sinh, "name");
+verifyConfigurable(Math.sinh, "name");
diff --git a/test/built-ins/Math/sqrt/length.js b/test/built-ins/Math/sqrt/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..3ca90f5d8c9a86c59bf5c3aecdb1b1353a171f95
--- /dev/null
+++ b/test/built-ins/Math/sqrt/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.32
+description: >
+  Math.sqrt.length is 1.
+info: >
+  Math.sqrt ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.sqrt.length, 1);
+
+verifyNotEnumerable(Math.sqrt, "length");
+verifyNotWritable(Math.sqrt, "length");
+verifyConfigurable(Math.sqrt, "length");
diff --git a/test/built-ins/Math/sqrt/name.js b/test/built-ins/Math/sqrt/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..425c39c0ca8a15e66670a050d8f073f23ea89e4e
--- /dev/null
+++ b/test/built-ins/Math/sqrt/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.32
+description: >
+  Math.sqrt.name is "sqrt".
+info: >
+  Math.sqrt ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.sqrt.name, "sqrt");
+
+verifyNotEnumerable(Math.sqrt, "name");
+verifyNotWritable(Math.sqrt, "name");
+verifyConfigurable(Math.sqrt, "name");
diff --git a/test/built-ins/Math/tan/length.js b/test/built-ins/Math/tan/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..ebfc53fa82ff1375c193b76281b24d9ccb202858
--- /dev/null
+++ b/test/built-ins/Math/tan/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.33
+description: >
+  Math.tan.length is 1.
+info: >
+  Math.tan ( x )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.tan.length, 1);
+
+verifyNotEnumerable(Math.tan, "length");
+verifyNotWritable(Math.tan, "length");
+verifyConfigurable(Math.tan, "length");
diff --git a/test/built-ins/Math/tan/name.js b/test/built-ins/Math/tan/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..bef908adc8770d7213ba844c37be4bceacf80c00
--- /dev/null
+++ b/test/built-ins/Math/tan/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.33
+description: >
+  Math.tan.name is "tan".
+info: >
+  Math.tan ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.tan.name, "tan");
+
+verifyNotEnumerable(Math.tan, "name");
+verifyNotWritable(Math.tan, "name");
+verifyConfigurable(Math.tan, "name");
diff --git a/test/built-ins/Math/tanh/name.js b/test/built-ins/Math/tanh/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..37e672f613c19acd8b67e005c297cc9ac618b7e5
--- /dev/null
+++ b/test/built-ins/Math/tanh/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.34
+description: >
+  Math.tanh.name is "tanh".
+info: >
+  Math.tanh ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.tanh.name, "tanh");
+
+verifyNotEnumerable(Math.tanh, "name");
+verifyNotWritable(Math.tanh, "name");
+verifyConfigurable(Math.tanh, "name");
diff --git a/test/built-ins/Math/trunc/name.js b/test/built-ins/Math/trunc/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..cb52f991c50bff1ff2b86abcb54d83ad11f07d79
--- /dev/null
+++ b/test/built-ins/Math/trunc/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.35
+description: >
+  Math.trunc.name is "trunc".
+info: >
+  Math.trunc ( x )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Math.trunc.name, "trunc");
+
+verifyNotEnumerable(Math.trunc, "name");
+verifyNotWritable(Math.trunc, "name");
+verifyConfigurable(Math.trunc, "name");
diff --git a/test/built-ins/NativeErrors/EvalError/constructor.js b/test/built-ins/NativeErrors/EvalError/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..ed388b47ea68611a81ed787afa30da34cc8f635e
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  EvalError is a constructor function.
+---*/
+
+assert.sameValue(typeof EvalError, 'function', 'typeof EvalError is "function"');
diff --git a/test/built-ins/NativeErrors/EvalError/instance-proto.js b/test/built-ins/NativeErrors/EvalError/instance-proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..8fe8ff9871a341f63a3f8be4bafce293ac355452
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/instance-proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  The prototype of EvalError instances is EvalError.prototype.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.getPrototypeOf(new EvalError), EvalError.prototype);
diff --git a/test/built-ins/NativeErrors/EvalError/is-error-object.js b/test/built-ins/NativeErrors/EvalError/is-error-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..9229b24aab810e933b2554530040be4064804b4f
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/is-error-object.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  EvalError instances have an [[ErrorData]] internal slot.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.prototype.toString.call(new EvalError), "[object Error]");
diff --git a/test/built-ins/NativeErrors/EvalError/length.js b/test/built-ins/NativeErrors/EvalError/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..581d3eb75a495ca3d57de26639e88c63cc8e77bd
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  EvalError.length is 1.
+info: >
+  NativeError ( message )
+
+  19.5.6.2 Properties of the NativeError Constructors
+    Besides the length property (whose value is 1) [...].
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(EvalError.length, 1);
+
+verifyNotEnumerable(EvalError, "length");
+verifyNotWritable(EvalError, "length");
+verifyConfigurable(EvalError, "length");
diff --git a/test/built-ins/NativeErrors/EvalError/name.js b/test/built-ins/NativeErrors/EvalError/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..d810c49f369a55cffe80a7c3ec7ec773a844a56c
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  EvalError.name is "EvalError".
+info: >
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(EvalError.name, "EvalError");
+
+verifyNotEnumerable(EvalError, "name");
+verifyNotWritable(EvalError, "name");
+verifyConfigurable(EvalError, "name");
diff --git a/test/built-ins/NativeErrors/EvalError/proto.js b/test/built-ins/NativeErrors/EvalError/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..a9faac145d77dc4a3c3149a83a8b9f84d3e23289
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/proto.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  The prototype of EvalError is Error.
+info: >
+  The value of the [[Prototype]] internal slot of a NativeError constructor is the intrinsic object %Error% (19.5.1).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(EvalError), Error);
diff --git a/test/built-ins/NativeErrors/EvalError/prototype.js b/test/built-ins/NativeErrors/EvalError/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..f863ff47e35040bf56aacd4be4948354c6744a23
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2.1
+description: >
+  The initial value of EvalError.prototype is the EvalError prototype object.
+info: >
+  The initial value of NativeError.prototype is a NativeError prototype object (19.5.6.3).
+  Each NativeError constructor has a distinct prototype object.
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(EvalError.prototype, Object.getPrototypeOf(new EvalError));
+
+verifyNotEnumerable(EvalError, "prototype");
+verifyNotWritable(EvalError, "prototype");
+verifyNotConfigurable(EvalError, "prototype");
diff --git a/test/built-ins/NativeErrors/EvalError/prototype/constructor.js b/test/built-ins/NativeErrors/EvalError/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..581925f297e967255183261b875a426a398a5c5f
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.1
+description: >
+  The initial value of EvalError.prototype.constructor is the EvalError object.
+info: >
+  The initial value of the constructor property of the prototype for a given NativeError
+  constructor is the corresponding intrinsic object %NativeError% (19.5.6.1).
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(EvalError.prototype.constructor, EvalError);
+
+verifyNotEnumerable(EvalError.prototype, "constructor");
+verifyWritable(EvalError.prototype, "constructor");
+verifyConfigurable(EvalError.prototype, "constructor");
diff --git a/test/built-ins/NativeErrors/EvalError/prototype/message.js b/test/built-ins/NativeErrors/EvalError/prototype/message.js
new file mode 100755
index 0000000000000000000000000000000000000000..e256bfe914ce7eefc740b2d529f508aa74ec50d1
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/prototype/message.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.2
+description: >
+  The initial value of EvalError.prototype.message is the empty string.
+info: >
+  The initial value of the message property of the prototype for a given NativeError
+  constructor is the empty String.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(EvalError.prototype.message, "");
+
+verifyNotEnumerable(EvalError.prototype, "message");
+verifyWritable(EvalError.prototype, "message");
+verifyConfigurable(EvalError.prototype, "message");
diff --git a/test/built-ins/NativeErrors/EvalError/prototype/name.js b/test/built-ins/NativeErrors/EvalError/prototype/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..6b0db3901f0ce5323bf5835521cac424253aa11c
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/prototype/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.3
+description: >
+  The initial value of EvalError.prototype.name is "EvalError".
+info: >
+  The initial value of the name property of the prototype for a given NativeError
+  constructor is a string consisting of the name of the constructor (the name used
+  instead of NativeError).
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(EvalError.prototype.name, "EvalError");
+
+verifyNotEnumerable(EvalError.prototype, "name");
+verifyWritable(EvalError.prototype, "name");
+verifyConfigurable(EvalError.prototype, "name");
diff --git a/test/built-ins/NativeErrors/EvalError/prototype/not-error-object.js b/test/built-ins/NativeErrors/EvalError/prototype/not-error-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..1e582259112574c1a0994ef407b1700c8cf5ec56
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/prototype/not-error-object.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  EvalError.prototype is not an error object instance.
+info: >
+  Each NativeError prototype object is an ordinary object. It is not an
+  Error instance and does not have an [[ErrorData]] internal slot.
+---*/
+
+assert.sameValue(Object.prototype.toString.call(EvalError.prototype), "[object Object]");
diff --git a/test/built-ins/NativeErrors/EvalError/prototype/proto.js b/test/built-ins/NativeErrors/EvalError/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..14f9deac93866fc11551bbe7b63b4af7dfb2e862
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/prototype/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  The prototype of EvalError.prototype is Error.prototype.
+info: >
+  The value of the [[Prototype]] internal slot of each NativeError prototype
+  object is the intrinsic object %ErrorPrototype% (19.5.3).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(EvalError.prototype), Error.prototype);
diff --git a/test/built-ins/NativeErrors/RangeError/constructor.js b/test/built-ins/NativeErrors/RangeError/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..c3d5e0a2ecace9f9f211a236ee1fb22e3a2015b3
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  RangeError is a constructor function.
+---*/
+
+assert.sameValue(typeof RangeError, 'function', 'typeof RangeError is "function"');
diff --git a/test/built-ins/NativeErrors/RangeError/instance-proto.js b/test/built-ins/NativeErrors/RangeError/instance-proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..88d40bf6d7c1ac7bcf6921bb6e7f2f741babeac0
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/instance-proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  The prototype of RangeError instances is RangeError.prototype.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.getPrototypeOf(new RangeError), RangeError.prototype);
diff --git a/test/built-ins/NativeErrors/RangeError/is-error-object.js b/test/built-ins/NativeErrors/RangeError/is-error-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..0e4bd55b7a7c9c5ad0993a38a233d81839799432
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/is-error-object.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  RangeError instances have an [[ErrorData]] internal slot.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.prototype.toString.call(new RangeError), "[object Error]");
diff --git a/test/built-ins/NativeErrors/RangeError/length.js b/test/built-ins/NativeErrors/RangeError/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..c4be5ca7b02d26cb6a5b8bba16ace8b9d3981007
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  RangeError.length is 1.
+info: >
+  NativeError ( message )
+
+  19.5.6.2 Properties of the NativeError Constructors
+    Besides the length property (whose value is 1) [...].
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(RangeError.length, 1);
+
+verifyNotEnumerable(RangeError, "length");
+verifyNotWritable(RangeError, "length");
+verifyConfigurable(RangeError, "length");
diff --git a/test/built-ins/NativeErrors/RangeError/name.js b/test/built-ins/NativeErrors/RangeError/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4368390edf55131c159611c6c18d9270da4c5991
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  RangeError.name is "RangeError".
+info: >
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(RangeError.name, "RangeError");
+
+verifyNotEnumerable(RangeError, "name");
+verifyNotWritable(RangeError, "name");
+verifyConfigurable(RangeError, "name");
diff --git a/test/built-ins/NativeErrors/RangeError/proto.js b/test/built-ins/NativeErrors/RangeError/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..e098b4f32775010e0e7d5bb33de01c8c65622613
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/proto.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  The prototype of RangeError is Error.
+info: >
+  The value of the [[Prototype]] internal slot of a NativeError constructor is the intrinsic object %Error% (19.5.1).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(RangeError), Error);
diff --git a/test/built-ins/NativeErrors/RangeError/prototype.js b/test/built-ins/NativeErrors/RangeError/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..a802b8409c4671c0a060cde612896bdd8e77a72f
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2.1
+description: >
+  The initial value of RangeError.prototype is the RangeError prototype object.
+info: >
+  The initial value of NativeError.prototype is a NativeError prototype object (19.5.6.3).
+  Each NativeError constructor has a distinct prototype object.
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(RangeError.prototype, Object.getPrototypeOf(new RangeError));
+
+verifyNotEnumerable(RangeError, "prototype");
+verifyNotWritable(RangeError, "prototype");
+verifyNotConfigurable(RangeError, "prototype");
diff --git a/test/built-ins/NativeErrors/RangeError/prototype/constructor.js b/test/built-ins/NativeErrors/RangeError/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..d94e491c0fc3b2ccea3622ef0a9d6eda2dc26086
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.1
+description: >
+  The initial value of RangeError.prototype.constructor is the RangeError object.
+info: >
+  The initial value of the constructor property of the prototype for a given NativeError
+  constructor is the corresponding intrinsic object %NativeError% (19.5.6.1).
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(RangeError.prototype.constructor, RangeError);
+
+verifyNotEnumerable(RangeError.prototype, "constructor");
+verifyWritable(RangeError.prototype, "constructor");
+verifyConfigurable(RangeError.prototype, "constructor");
diff --git a/test/built-ins/NativeErrors/RangeError/prototype/message.js b/test/built-ins/NativeErrors/RangeError/prototype/message.js
new file mode 100755
index 0000000000000000000000000000000000000000..059477b8e88fcb24ba592fddb2b39458c01d3b34
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/prototype/message.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.2
+description: >
+  The initial value of RangeError.prototype.message is the empty string.
+info: >
+  The initial value of the message property of the prototype for a given NativeError
+  constructor is the empty String.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(RangeError.prototype.message, "");
+
+verifyNotEnumerable(RangeError.prototype, "message");
+verifyWritable(RangeError.prototype, "message");
+verifyConfigurable(RangeError.prototype, "message");
diff --git a/test/built-ins/NativeErrors/RangeError/prototype/name.js b/test/built-ins/NativeErrors/RangeError/prototype/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..ef4f8577052240214dad4edf5718f34cd82a368e
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/prototype/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.3
+description: >
+  The initial value of RangeError.prototype.name is "RangeError".
+info: >
+  The initial value of the name property of the prototype for a given NativeError
+  constructor is a string consisting of the name of the constructor (the name used
+  instead of NativeError).
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(RangeError.prototype.name, "RangeError");
+
+verifyNotEnumerable(RangeError.prototype, "name");
+verifyWritable(RangeError.prototype, "name");
+verifyConfigurable(RangeError.prototype, "name");
diff --git a/test/built-ins/NativeErrors/RangeError/prototype/not-error-object.js b/test/built-ins/NativeErrors/RangeError/prototype/not-error-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..d7d5bf64be951ccc7283ac0a31d529d2a9be2be7
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/prototype/not-error-object.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  RangeError.prototype is not an error object instance.
+info: >
+  Each NativeError prototype object is an ordinary object. It is not an
+  Error instance and does not have an [[ErrorData]] internal slot.
+---*/
+
+assert.sameValue(Object.prototype.toString.call(RangeError.prototype), "[object Object]");
diff --git a/test/built-ins/NativeErrors/RangeError/prototype/proto.js b/test/built-ins/NativeErrors/RangeError/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..200ed2ecf334f913901556ee9fd42897a893863c
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/prototype/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  The prototype of RangeError.prototype is Error.prototype.
+info: >
+  The value of the [[Prototype]] internal slot of each NativeError prototype
+  object is the intrinsic object %ErrorPrototype% (19.5.3).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(RangeError.prototype), Error.prototype);
diff --git a/test/built-ins/NativeErrors/ReferenceError/constructor.js b/test/built-ins/NativeErrors/ReferenceError/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..085dd391d6c876085b7a79247683de39b6360412
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  ReferenceError is a constructor function.
+---*/
+
+assert.sameValue(typeof ReferenceError, 'function', 'typeof ReferenceError is "function"');
diff --git a/test/built-ins/NativeErrors/ReferenceError/instance-proto.js b/test/built-ins/NativeErrors/ReferenceError/instance-proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..fd580d04da87c63f0be04f330d64f0b3d93bd0ff
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/instance-proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  The prototype of ReferenceError instances is ReferenceError.prototype.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.getPrototypeOf(new ReferenceError), ReferenceError.prototype);
diff --git a/test/built-ins/NativeErrors/ReferenceError/is-error-object.js b/test/built-ins/NativeErrors/ReferenceError/is-error-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..e11906a79ab8b726058d9c6b088b4334f3a90ed6
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/is-error-object.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  ReferenceError instances have an [[ErrorData]] internal slot.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.prototype.toString.call(new ReferenceError), "[object Error]");
diff --git a/test/built-ins/NativeErrors/ReferenceError/length.js b/test/built-ins/NativeErrors/ReferenceError/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..079ccf05aeb996ff0240bf9efa2620d69bc1e2e0
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  ReferenceError.length is 1.
+info: >
+  NativeError ( message )
+
+  19.5.6.2 Properties of the NativeError Constructors
+    Besides the length property (whose value is 1) [...].
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(ReferenceError.length, 1);
+
+verifyNotEnumerable(ReferenceError, "length");
+verifyNotWritable(ReferenceError, "length");
+verifyConfigurable(ReferenceError, "length");
diff --git a/test/built-ins/NativeErrors/ReferenceError/name.js b/test/built-ins/NativeErrors/ReferenceError/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..ef93bfdae6578181aca54a4871e2916fb51865c4
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  ReferenceError.name is "ReferenceError".
+info: >
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(ReferenceError.name, "ReferenceError");
+
+verifyNotEnumerable(ReferenceError, "name");
+verifyNotWritable(ReferenceError, "name");
+verifyConfigurable(ReferenceError, "name");
diff --git a/test/built-ins/NativeErrors/ReferenceError/proto.js b/test/built-ins/NativeErrors/ReferenceError/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..7d34c4174c6a84d94f66a4d70e5b88649b92a3ad
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/proto.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  The prototype of ReferenceError is Error.
+info: >
+  The value of the [[Prototype]] internal slot of a NativeError constructor is the intrinsic object %Error% (19.5.1).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(ReferenceError), Error);
diff --git a/test/built-ins/NativeErrors/ReferenceError/prototype.js b/test/built-ins/NativeErrors/ReferenceError/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..160ea5f61fc5bc79152603cdaef647fc1ea91c23
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2.1
+description: >
+  The initial value of ReferenceError.prototype is the ReferenceError prototype object.
+info: >
+  The initial value of NativeError.prototype is a NativeError prototype object (19.5.6.3).
+  Each NativeError constructor has a distinct prototype object.
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(ReferenceError.prototype, Object.getPrototypeOf(new ReferenceError));
+
+verifyNotEnumerable(ReferenceError, "prototype");
+verifyNotWritable(ReferenceError, "prototype");
+verifyNotConfigurable(ReferenceError, "prototype");
diff --git a/test/built-ins/NativeErrors/ReferenceError/prototype/constructor.js b/test/built-ins/NativeErrors/ReferenceError/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..d3d159d9bc476613d8a6476d658672c185c59521
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.1
+description: >
+  The initial value of ReferenceError.prototype.constructor is the ReferenceError object.
+info: >
+  The initial value of the constructor property of the prototype for a given NativeError
+  constructor is the corresponding intrinsic object %NativeError% (19.5.6.1).
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(ReferenceError.prototype.constructor, ReferenceError);
+
+verifyNotEnumerable(ReferenceError.prototype, "constructor");
+verifyWritable(ReferenceError.prototype, "constructor");
+verifyConfigurable(ReferenceError.prototype, "constructor");
diff --git a/test/built-ins/NativeErrors/ReferenceError/prototype/message.js b/test/built-ins/NativeErrors/ReferenceError/prototype/message.js
new file mode 100755
index 0000000000000000000000000000000000000000..836bb6fef2944c335b52dd832227f8ca16813a03
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/prototype/message.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.2
+description: >
+  The initial value of ReferenceError.prototype.message is the empty string.
+info: >
+  The initial value of the message property of the prototype for a given NativeError
+  constructor is the empty String.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(ReferenceError.prototype.message, "");
+
+verifyNotEnumerable(ReferenceError.prototype, "message");
+verifyWritable(ReferenceError.prototype, "message");
+verifyConfigurable(ReferenceError.prototype, "message");
diff --git a/test/built-ins/NativeErrors/ReferenceError/prototype/name.js b/test/built-ins/NativeErrors/ReferenceError/prototype/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..92fba48cfc83c51d21da2499cd1a4bd1f70f3ea5
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/prototype/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.3
+description: >
+  The initial value of ReferenceError.prototype.name is "ReferenceError".
+info: >
+  The initial value of the name property of the prototype for a given NativeError
+  constructor is a string consisting of the name of the constructor (the name used
+  instead of NativeError).
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(ReferenceError.prototype.name, "ReferenceError");
+
+verifyNotEnumerable(ReferenceError.prototype, "name");
+verifyWritable(ReferenceError.prototype, "name");
+verifyConfigurable(ReferenceError.prototype, "name");
diff --git a/test/built-ins/NativeErrors/ReferenceError/prototype/not-error-object.js b/test/built-ins/NativeErrors/ReferenceError/prototype/not-error-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..6bb112df8dd331073874cf46912719a0aaa90439
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/prototype/not-error-object.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  ReferenceError.prototype is not an error object instance.
+info: >
+  Each NativeError prototype object is an ordinary object. It is not an
+  Error instance and does not have an [[ErrorData]] internal slot.
+---*/
+
+assert.sameValue(Object.prototype.toString.call(ReferenceError.prototype), "[object Object]");
diff --git a/test/built-ins/NativeErrors/ReferenceError/prototype/proto.js b/test/built-ins/NativeErrors/ReferenceError/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..bffd499ef2baa5bc4fed0bf1045cae034c52aad5
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/prototype/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  The prototype of ReferenceError.prototype is Error.prototype.
+info: >
+  The value of the [[Prototype]] internal slot of each NativeError prototype
+  object is the intrinsic object %ErrorPrototype% (19.5.3).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(ReferenceError.prototype), Error.prototype);
diff --git a/test/built-ins/NativeErrors/SyntaxError/constructor.js b/test/built-ins/NativeErrors/SyntaxError/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..ecbae3e236819262aeb3af92e2c6b3c4e45bd431
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  SyntaxError is a constructor function.
+---*/
+
+assert.sameValue(typeof SyntaxError, 'function', 'typeof SyntaxError is "function"');
diff --git a/test/built-ins/NativeErrors/SyntaxError/instance-proto.js b/test/built-ins/NativeErrors/SyntaxError/instance-proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..745c1cb5ed54570f3fc07a11da5c2adc92c2f01b
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/instance-proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  The prototype of SyntaxError instances is SyntaxError.prototype.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.getPrototypeOf(new SyntaxError), SyntaxError.prototype);
diff --git a/test/built-ins/NativeErrors/SyntaxError/is-error-object.js b/test/built-ins/NativeErrors/SyntaxError/is-error-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..c4b4d4fa94dd0c1815bd2d6229d3facb6f4538b7
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/is-error-object.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  SyntaxError instances have an [[ErrorData]] internal slot.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.prototype.toString.call(new SyntaxError), "[object Error]");
diff --git a/test/built-ins/NativeErrors/SyntaxError/length.js b/test/built-ins/NativeErrors/SyntaxError/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..6836ed76be95e2cc9cc037a526c3418d155a2e71
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  SyntaxError.length is 1.
+info: >
+  NativeError ( message )
+
+  19.5.6.2 Properties of the NativeError Constructors
+    Besides the length property (whose value is 1) [...].
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(SyntaxError.length, 1);
+
+verifyNotEnumerable(SyntaxError, "length");
+verifyNotWritable(SyntaxError, "length");
+verifyConfigurable(SyntaxError, "length");
diff --git a/test/built-ins/NativeErrors/SyntaxError/name.js b/test/built-ins/NativeErrors/SyntaxError/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..34f04980d8bd53586dfcd401a9d64c241bb3d80a
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  SyntaxError.name is "SyntaxError".
+info: >
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(SyntaxError.name, "SyntaxError");
+
+verifyNotEnumerable(SyntaxError, "name");
+verifyNotWritable(SyntaxError, "name");
+verifyConfigurable(SyntaxError, "name");
diff --git a/test/built-ins/NativeErrors/SyntaxError/proto.js b/test/built-ins/NativeErrors/SyntaxError/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..6ca28b2d586f6c8e20bcce9310b37f3efb150a8f
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/proto.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  The prototype of SyntaxError is Error.
+info: >
+  The value of the [[Prototype]] internal slot of a NativeError constructor is the intrinsic object %Error% (19.5.1).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(SyntaxError), Error);
diff --git a/test/built-ins/NativeErrors/SyntaxError/prototype.js b/test/built-ins/NativeErrors/SyntaxError/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..f6ab80d83758e5808c43df9001fb152af7334f2d
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2.1
+description: >
+  The initial value of SyntaxError.prototype is the SyntaxError prototype object.
+info: >
+  The initial value of NativeError.prototype is a NativeError prototype object (19.5.6.3).
+  Each NativeError constructor has a distinct prototype object.
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(SyntaxError.prototype, Object.getPrototypeOf(new SyntaxError));
+
+verifyNotEnumerable(SyntaxError, "prototype");
+verifyNotWritable(SyntaxError, "prototype");
+verifyNotConfigurable(SyntaxError, "prototype");
diff --git a/test/built-ins/NativeErrors/SyntaxError/prototype/constructor.js b/test/built-ins/NativeErrors/SyntaxError/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..138c053f3beebd4456abed48646eb25f92b20272
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.1
+description: >
+  The initial value of SyntaxError.prototype.constructor is the SyntaxError object.
+info: >
+  The initial value of the constructor property of the prototype for a given NativeError
+  constructor is the corresponding intrinsic object %NativeError% (19.5.6.1).
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(SyntaxError.prototype.constructor, SyntaxError);
+
+verifyNotEnumerable(SyntaxError.prototype, "constructor");
+verifyWritable(SyntaxError.prototype, "constructor");
+verifyConfigurable(SyntaxError.prototype, "constructor");
diff --git a/test/built-ins/NativeErrors/SyntaxError/prototype/message.js b/test/built-ins/NativeErrors/SyntaxError/prototype/message.js
new file mode 100755
index 0000000000000000000000000000000000000000..fdebed5cae44ba3073cdb9b0391639e47777b900
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/prototype/message.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.2
+description: >
+  The initial value of SyntaxError.prototype.message is the empty string.
+info: >
+  The initial value of the message property of the prototype for a given NativeError
+  constructor is the empty String.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(SyntaxError.prototype.message, "");
+
+verifyNotEnumerable(SyntaxError.prototype, "message");
+verifyWritable(SyntaxError.prototype, "message");
+verifyConfigurable(SyntaxError.prototype, "message");
diff --git a/test/built-ins/NativeErrors/SyntaxError/prototype/name.js b/test/built-ins/NativeErrors/SyntaxError/prototype/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..91971a50b06626e7412573a35f19c3e88a1da36c
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/prototype/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.3
+description: >
+  The initial value of SyntaxError.prototype.name is "SyntaxError".
+info: >
+  The initial value of the name property of the prototype for a given NativeError
+  constructor is a string consisting of the name of the constructor (the name used
+  instead of NativeError).
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(SyntaxError.prototype.name, "SyntaxError");
+
+verifyNotEnumerable(SyntaxError.prototype, "name");
+verifyWritable(SyntaxError.prototype, "name");
+verifyConfigurable(SyntaxError.prototype, "name");
diff --git a/test/built-ins/NativeErrors/SyntaxError/prototype/not-error-object.js b/test/built-ins/NativeErrors/SyntaxError/prototype/not-error-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..fd0f67fd7143398bab3338b37470e12de5623efc
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/prototype/not-error-object.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  SyntaxError.prototype is not an error object instance.
+info: >
+  Each NativeError prototype object is an ordinary object. It is not an
+  Error instance and does not have an [[ErrorData]] internal slot.
+---*/
+
+assert.sameValue(Object.prototype.toString.call(SyntaxError.prototype), "[object Object]");
diff --git a/test/built-ins/NativeErrors/SyntaxError/prototype/proto.js b/test/built-ins/NativeErrors/SyntaxError/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..e1654ece7a4d9b6cab0b113b9c40cd63a1d66674
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/prototype/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  The prototype of SyntaxError.prototype is Error.prototype.
+info: >
+  The value of the [[Prototype]] internal slot of each NativeError prototype
+  object is the intrinsic object %ErrorPrototype% (19.5.3).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(SyntaxError.prototype), Error.prototype);
diff --git a/test/built-ins/NativeErrors/TypeError/constructor.js b/test/built-ins/NativeErrors/TypeError/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..777d410d70a4247af0a9421e30a4ffd889873d43
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  TypeError is a constructor function.
+---*/
+
+assert.sameValue(typeof TypeError, 'function', 'typeof TypeError is "function"');
diff --git a/test/built-ins/NativeErrors/TypeError/instance-proto.js b/test/built-ins/NativeErrors/TypeError/instance-proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..fa176ad6465b77d1d9dd8dcf8ca04cebe81b6a6c
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/instance-proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  The prototype of TypeError instances is TypeError.prototype.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.getPrototypeOf(new TypeError), TypeError.prototype);
diff --git a/test/built-ins/NativeErrors/TypeError/is-error-object.js b/test/built-ins/NativeErrors/TypeError/is-error-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..3df960fe327690b65780d4839d024ed40b17eda1
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/is-error-object.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  TypeError instances have an [[ErrorData]] internal slot.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.prototype.toString.call(new TypeError), "[object Error]");
diff --git a/test/built-ins/NativeErrors/TypeError/length.js b/test/built-ins/NativeErrors/TypeError/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..cbd3a8388057dcb56372a3c99b0bb8ebef1c19c0
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  TypeError.length is 1.
+info: >
+  NativeError ( message )
+
+  19.5.6.2 Properties of the NativeError Constructors
+    Besides the length property (whose value is 1) [...].
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(TypeError.length, 1);
+
+verifyNotEnumerable(TypeError, "length");
+verifyNotWritable(TypeError, "length");
+verifyConfigurable(TypeError, "length");
diff --git a/test/built-ins/NativeErrors/TypeError/name.js b/test/built-ins/NativeErrors/TypeError/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..be5a5e3d2705506ddfa24876c58673147594adfb
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  TypeError.name is "TypeError".
+info: >
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(TypeError.name, "TypeError");
+
+verifyNotEnumerable(TypeError, "name");
+verifyNotWritable(TypeError, "name");
+verifyConfigurable(TypeError, "name");
diff --git a/test/built-ins/NativeErrors/TypeError/proto.js b/test/built-ins/NativeErrors/TypeError/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..c9f482f85bf28a97bd5af714b82f859fabcf1057
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/proto.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  The prototype of TypeError is Error.
+info: >
+  The value of the [[Prototype]] internal slot of a NativeError constructor is the intrinsic object %Error% (19.5.1).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(TypeError), Error);
diff --git a/test/built-ins/NativeErrors/TypeError/prototype.js b/test/built-ins/NativeErrors/TypeError/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..1b959527ce7417bf7b7bbc03fbeaddededdc0780
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2.1
+description: >
+  The initial value of TypeError.prototype is the TypeError prototype object.
+info: >
+  The initial value of NativeError.prototype is a NativeError prototype object (19.5.6.3).
+  Each NativeError constructor has a distinct prototype object.
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(TypeError.prototype, Object.getPrototypeOf(new TypeError));
+
+verifyNotEnumerable(TypeError, "prototype");
+verifyNotWritable(TypeError, "prototype");
+verifyNotConfigurable(TypeError, "prototype");
diff --git a/test/built-ins/NativeErrors/TypeError/prototype/constructor.js b/test/built-ins/NativeErrors/TypeError/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..4c27ee5fa38280b5dbb026d14d7a5a27464eceb3
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.1
+description: >
+  The initial value of TypeError.prototype.constructor is the TypeError object.
+info: >
+  The initial value of the constructor property of the prototype for a given NativeError
+  constructor is the corresponding intrinsic object %NativeError% (19.5.6.1).
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(TypeError.prototype.constructor, TypeError);
+
+verifyNotEnumerable(TypeError.prototype, "constructor");
+verifyWritable(TypeError.prototype, "constructor");
+verifyConfigurable(TypeError.prototype, "constructor");
diff --git a/test/built-ins/NativeErrors/TypeError/prototype/message.js b/test/built-ins/NativeErrors/TypeError/prototype/message.js
new file mode 100755
index 0000000000000000000000000000000000000000..6dd1fdfbd76db295a3b212bc44c141e69edc8c6b
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/prototype/message.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.2
+description: >
+  The initial value of TypeError.prototype.message is the empty string.
+info: >
+  The initial value of the message property of the prototype for a given NativeError
+  constructor is the empty String.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(TypeError.prototype.message, "");
+
+verifyNotEnumerable(TypeError.prototype, "message");
+verifyWritable(TypeError.prototype, "message");
+verifyConfigurable(TypeError.prototype, "message");
diff --git a/test/built-ins/NativeErrors/TypeError/prototype/name.js b/test/built-ins/NativeErrors/TypeError/prototype/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..687c27bc59735792790dfb3e711771b515ccca60
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/prototype/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.3
+description: >
+  The initial value of TypeError.prototype.name is "TypeError".
+info: >
+  The initial value of the name property of the prototype for a given NativeError
+  constructor is a string consisting of the name of the constructor (the name used
+  instead of NativeError).
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(TypeError.prototype.name, "TypeError");
+
+verifyNotEnumerable(TypeError.prototype, "name");
+verifyWritable(TypeError.prototype, "name");
+verifyConfigurable(TypeError.prototype, "name");
diff --git a/test/built-ins/NativeErrors/TypeError/prototype/not-error-object.js b/test/built-ins/NativeErrors/TypeError/prototype/not-error-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..d30e5e8e519efe8d6b44951b8b7dad044cc9d7ab
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/prototype/not-error-object.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  TypeError.prototype is not an error object instance.
+info: >
+  Each NativeError prototype object is an ordinary object. It is not an
+  Error instance and does not have an [[ErrorData]] internal slot.
+---*/
+
+assert.sameValue(Object.prototype.toString.call(TypeError.prototype), "[object Object]");
diff --git a/test/built-ins/NativeErrors/TypeError/prototype/proto.js b/test/built-ins/NativeErrors/TypeError/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..af405e150309ee0d8986b4e74a349bf790737487
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/prototype/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  The prototype of TypeError.prototype is Error.prototype.
+info: >
+  The value of the [[Prototype]] internal slot of each NativeError prototype
+  object is the intrinsic object %ErrorPrototype% (19.5.3).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(TypeError.prototype), Error.prototype);
diff --git a/test/built-ins/NativeErrors/URIError/constructor.js b/test/built-ins/NativeErrors/URIError/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..7e7aac49e5a303c4b88ef7774c5aa16da7be57f1
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  URIError is a constructor function.
+---*/
+
+assert.sameValue(typeof URIError, 'function', 'typeof URIError is "function"');
diff --git a/test/built-ins/NativeErrors/URIError/instance-proto.js b/test/built-ins/NativeErrors/URIError/instance-proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..58c432f5f4af7143439e696fede9f85ea6f00884
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/instance-proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  The prototype of URIError instances is URIError.prototype.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.getPrototypeOf(new URIError), URIError.prototype);
diff --git a/test/built-ins/NativeErrors/URIError/is-error-object.js b/test/built-ins/NativeErrors/URIError/is-error-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..dbce44e90e54840053f809ddc4459e92e12bac37
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/is-error-object.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  URIError instances have an [[ErrorData]] internal slot.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.prototype.toString.call(new URIError), "[object Error]");
diff --git a/test/built-ins/NativeErrors/URIError/length.js b/test/built-ins/NativeErrors/URIError/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..4d5f631c66f3b67f360f8100a0739f0063a83a5a
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  URIError.length is 1.
+info: >
+  NativeError ( message )
+
+  19.5.6.2 Properties of the NativeError Constructors
+    Besides the length property (whose value is 1) [...].
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(URIError.length, 1);
+
+verifyNotEnumerable(URIError, "length");
+verifyNotWritable(URIError, "length");
+verifyConfigurable(URIError, "length");
diff --git a/test/built-ins/NativeErrors/URIError/name.js b/test/built-ins/NativeErrors/URIError/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..f0048b5398a161bd3d0b3de5acedee35da3a87b7
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  URIError.name is "URIError".
+info: >
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(URIError.name, "URIError");
+
+verifyNotEnumerable(URIError, "name");
+verifyNotWritable(URIError, "name");
+verifyConfigurable(URIError, "name");
diff --git a/test/built-ins/NativeErrors/URIError/proto.js b/test/built-ins/NativeErrors/URIError/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..e1fc2cb00fef28854298bd32a2393c36ef352a20
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/proto.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  The prototype of URIError is Error.
+info: >
+  The value of the [[Prototype]] internal slot of a NativeError constructor is the intrinsic object %Error% (19.5.1).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(URIError), Error);
diff --git a/test/built-ins/NativeErrors/URIError/prototype.js b/test/built-ins/NativeErrors/URIError/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..dead9704540b660222ce61ecff9f22308883bea8
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2.1
+description: >
+  The initial value of URIError.prototype is the URIError prototype object.
+info: >
+  The initial value of NativeError.prototype is a NativeError prototype object (19.5.6.3).
+  Each NativeError constructor has a distinct prototype object.
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(URIError.prototype, Object.getPrototypeOf(new URIError));
+
+verifyNotEnumerable(URIError, "prototype");
+verifyNotWritable(URIError, "prototype");
+verifyNotConfigurable(URIError, "prototype");
diff --git a/test/built-ins/NativeErrors/URIError/prototype/constructor.js b/test/built-ins/NativeErrors/URIError/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..6c2ab7f6e83b7414ca98b2be04a79c8c275e6db4
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.1
+description: >
+  The initial value of URIError.prototype.constructor is the URIError object.
+info: >
+  The initial value of the constructor property of the prototype for a given NativeError
+  constructor is the corresponding intrinsic object %NativeError% (19.5.6.1).
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(URIError.prototype.constructor, URIError);
+
+verifyNotEnumerable(URIError.prototype, "constructor");
+verifyWritable(URIError.prototype, "constructor");
+verifyConfigurable(URIError.prototype, "constructor");
diff --git a/test/built-ins/NativeErrors/URIError/prototype/message.js b/test/built-ins/NativeErrors/URIError/prototype/message.js
new file mode 100755
index 0000000000000000000000000000000000000000..04fa0c09846bd500c10ee2bc50bdc1c9c9e97bcf
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/prototype/message.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.2
+description: >
+  The initial value of URIError.prototype.message is the empty string.
+info: >
+  The initial value of the message property of the prototype for a given NativeError
+  constructor is the empty String.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(URIError.prototype.message, "");
+
+verifyNotEnumerable(URIError.prototype, "message");
+verifyWritable(URIError.prototype, "message");
+verifyConfigurable(URIError.prototype, "message");
diff --git a/test/built-ins/NativeErrors/URIError/prototype/name.js b/test/built-ins/NativeErrors/URIError/prototype/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..f3dbbd057aeb8e4113d2ece00251193e5490d78b
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/prototype/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.3
+description: >
+  The initial value of URIError.prototype.name is "URIError".
+info: >
+  The initial value of the name property of the prototype for a given NativeError
+  constructor is a string consisting of the name of the constructor (the name used
+  instead of NativeError).
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(URIError.prototype.name, "URIError");
+
+verifyNotEnumerable(URIError.prototype, "name");
+verifyWritable(URIError.prototype, "name");
+verifyConfigurable(URIError.prototype, "name");
diff --git a/test/built-ins/NativeErrors/URIError/prototype/not-error-object.js b/test/built-ins/NativeErrors/URIError/prototype/not-error-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..c693d1c22bb9987f451bb4eeb95268209ea98284
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/prototype/not-error-object.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  URIError.prototype is not an error object instance.
+info: >
+  Each NativeError prototype object is an ordinary object. It is not an
+  Error instance and does not have an [[ErrorData]] internal slot.
+---*/
+
+assert.sameValue(Object.prototype.toString.call(URIError.prototype), "[object Object]");
diff --git a/test/built-ins/NativeErrors/URIError/prototype/proto.js b/test/built-ins/NativeErrors/URIError/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..857d56b05df65646c864f9aafb8f90f2336e5ae1
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/prototype/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  The prototype of URIError.prototype is Error.prototype.
+info: >
+  The value of the [[Prototype]] internal slot of each NativeError prototype
+  object is the intrinsic object %ErrorPrototype% (19.5.3).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(URIError.prototype), Error.prototype);
diff --git a/test/built-ins/Error/message_property_native_error.js b/test/built-ins/NativeErrors/message_property_native_error.js
similarity index 100%
rename from test/built-ins/Error/message_property_native_error.js
rename to test/built-ins/NativeErrors/message_property_native_error.js
diff --git a/test/built-ins/Number/isFinite/length.js b/test/built-ins/Number/isFinite/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..b7596554ac108301064019996cb49d8898a8dd18
--- /dev/null
+++ b/test/built-ins/Number/isFinite/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.2.2
+description: >
+  Number.isFinite.length is 1.
+info: >
+  Number.isFinite ( number )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.isFinite.length, 1);
+
+verifyNotEnumerable(Number.isFinite, "length");
+verifyNotWritable(Number.isFinite, "length");
+verifyConfigurable(Number.isFinite, "length");
diff --git a/test/built-ins/Number/isFinite/name.js b/test/built-ins/Number/isFinite/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..76e700420ffaa139742ec785ca4033bfaf156b25
--- /dev/null
+++ b/test/built-ins/Number/isFinite/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.2.2
+description: >
+  Number.isFinite.name is "isFinite".
+info: >
+  Number.isFinite ( number )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.isFinite.name, "isFinite");
+
+verifyNotEnumerable(Number.isFinite, "name");
+verifyNotWritable(Number.isFinite, "name");
+verifyConfigurable(Number.isFinite, "name");
diff --git a/test/built-ins/Number/isInteger/length.js b/test/built-ins/Number/isInteger/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..cefaf2eb845106a1e7cb55a58fce89d5332c25aa
--- /dev/null
+++ b/test/built-ins/Number/isInteger/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.2.3
+description: >
+  Number.isInteger.length is 1.
+info: >
+  Number.isInteger ( number )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.isInteger.length, 1);
+
+verifyNotEnumerable(Number.isInteger, "length");
+verifyNotWritable(Number.isInteger, "length");
+verifyConfigurable(Number.isInteger, "length");
diff --git a/test/built-ins/Number/isInteger/name.js b/test/built-ins/Number/isInteger/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..ccc62db977da582400d498d7606dab9f504d4c73
--- /dev/null
+++ b/test/built-ins/Number/isInteger/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.2.3
+description: >
+  Number.isInteger.name is "isInteger".
+info: >
+  Number.isInteger ( number )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.isInteger.name, "isInteger");
+
+verifyNotEnumerable(Number.isInteger, "name");
+verifyNotWritable(Number.isInteger, "name");
+verifyConfigurable(Number.isInteger, "name");
diff --git a/test/built-ins/Number/isNaN/length.js b/test/built-ins/Number/isNaN/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..7f7e8a6cbde071a0a3f0c9b50ca52a6ee1618587
--- /dev/null
+++ b/test/built-ins/Number/isNaN/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.2.4
+description: >
+  Number.isNaN.length is 1.
+info: >
+  Number.isNaN ( number )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.isNaN.length, 1);
+
+verifyNotEnumerable(Number.isNaN, "length");
+verifyNotWritable(Number.isNaN, "length");
+verifyConfigurable(Number.isNaN, "length");
diff --git a/test/built-ins/Number/isNaN/name.js b/test/built-ins/Number/isNaN/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..bfb2b1eace79447a256dcb4ac920b0ed130fbcee
--- /dev/null
+++ b/test/built-ins/Number/isNaN/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.2.4
+description: >
+  Number.isNaN.name is "isNaN".
+info: >
+  Number.isNaN ( number )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.isNaN.name, "isNaN");
+
+verifyNotEnumerable(Number.isNaN, "name");
+verifyNotWritable(Number.isNaN, "name");
+verifyConfigurable(Number.isNaN, "name");
diff --git a/test/built-ins/Number/isSafeInteger/length.js b/test/built-ins/Number/isSafeInteger/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..356441ec568244120ada6843938ffbebdb32e969
--- /dev/null
+++ b/test/built-ins/Number/isSafeInteger/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.2.5
+description: >
+  Number.isSafeInteger.length is 1.
+info: >
+  Number.isSafeInteger ( number )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.isSafeInteger.length, 1);
+
+verifyNotEnumerable(Number.isSafeInteger, "length");
+verifyNotWritable(Number.isSafeInteger, "length");
+verifyConfigurable(Number.isSafeInteger, "length");
diff --git a/test/built-ins/Number/isSafeInteger/name.js b/test/built-ins/Number/isSafeInteger/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..b928f53247c86d6bdb0c5e4353f0d8d9e554b42e
--- /dev/null
+++ b/test/built-ins/Number/isSafeInteger/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.2.5
+description: >
+  Number.isSafeInteger.name is "isSafeInteger".
+info: >
+  Number.isSafeInteger ( number )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.isSafeInteger.name, "isSafeInteger");
+
+verifyNotEnumerable(Number.isSafeInteger, "name");
+verifyNotWritable(Number.isSafeInteger, "name");
+verifyConfigurable(Number.isSafeInteger, "name");
diff --git a/test/built-ins/Number/prototype/toExponential/length.js b/test/built-ins/Number/prototype/toExponential/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..4c451766287b371884bca95a81ab582b6e346bde
--- /dev/null
+++ b/test/built-ins/Number/prototype/toExponential/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.3.2
+description: >
+  Number.prototype.toExponential.length is 1.
+info: >
+  Number.prototype.toExponential ( fractionDigits )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.prototype.toExponential.length, 1);
+
+verifyNotEnumerable(Number.prototype.toExponential, "length");
+verifyNotWritable(Number.prototype.toExponential, "length");
+verifyConfigurable(Number.prototype.toExponential, "length");
diff --git a/test/built-ins/Number/prototype/toExponential/name.js b/test/built-ins/Number/prototype/toExponential/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..69fb8351f1d2d37eb28e6422479e579720f0189e
--- /dev/null
+++ b/test/built-ins/Number/prototype/toExponential/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.3.2
+description: >
+  Number.prototype.toExponential.name is "toExponential".
+info: >
+  Number.prototype.toExponential ( fractionDigits )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.prototype.toExponential.name, "toExponential");
+
+verifyNotEnumerable(Number.prototype.toExponential, "name");
+verifyNotWritable(Number.prototype.toExponential, "name");
+verifyConfigurable(Number.prototype.toExponential, "name");
diff --git a/test/built-ins/Number/prototype/toFixed/name.js b/test/built-ins/Number/prototype/toFixed/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..485213ac43b1cdf2e1a1e5c066eabdd8a0db0649
--- /dev/null
+++ b/test/built-ins/Number/prototype/toFixed/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.3.3
+description: >
+  Number.prototype.toFixed.name is "toFixed".
+info: >
+  Number.prototype.toFixed ( fractionDigits )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.prototype.toFixed.name, "toFixed");
+
+verifyNotEnumerable(Number.prototype.toFixed, "name");
+verifyNotWritable(Number.prototype.toFixed, "name");
+verifyConfigurable(Number.prototype.toFixed, "name");
diff --git a/test/built-ins/Number/prototype/toLocaleString/length.js b/test/built-ins/Number/prototype/toLocaleString/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..e7136cb812845454be701bad0b03db83ebfa2bdd
--- /dev/null
+++ b/test/built-ins/Number/prototype/toLocaleString/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.3.4
+description: >
+  Number.prototype.toLocaleString.length is 0.
+info: >
+  Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.prototype.toLocaleString.length, 0);
+
+verifyNotEnumerable(Number.prototype.toLocaleString, "length");
+verifyNotWritable(Number.prototype.toLocaleString, "length");
+verifyConfigurable(Number.prototype.toLocaleString, "length");
diff --git a/test/built-ins/Number/prototype/toLocaleString/name.js b/test/built-ins/Number/prototype/toLocaleString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..80116d27111119aacab1bb947ac4468c5ea755c4
--- /dev/null
+++ b/test/built-ins/Number/prototype/toLocaleString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.3.4
+description: >
+  Number.prototype.toLocaleString.name is "toLocaleString".
+info: >
+  Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.prototype.toLocaleString.name, "toLocaleString");
+
+verifyNotEnumerable(Number.prototype.toLocaleString, "name");
+verifyNotWritable(Number.prototype.toLocaleString, "name");
+verifyConfigurable(Number.prototype.toLocaleString, "name");
diff --git a/test/built-ins/Number/prototype/toPrecision/length.js b/test/built-ins/Number/prototype/toPrecision/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..f4770744ca0515abf346d5e29d5b9b606bec6fbe
--- /dev/null
+++ b/test/built-ins/Number/prototype/toPrecision/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.3.5
+description: >
+  Number.prototype.toPrecision.length is 1.
+info: >
+  Number.prototype.toPrecision ( precision )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.prototype.toPrecision.length, 1);
+
+verifyNotEnumerable(Number.prototype.toPrecision, "length");
+verifyNotWritable(Number.prototype.toPrecision, "length");
+verifyConfigurable(Number.prototype.toPrecision, "length");
diff --git a/test/built-ins/Number/prototype/toPrecision/name.js b/test/built-ins/Number/prototype/toPrecision/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..e2356985811f2815c53b964811aa58c4a5a753bf
--- /dev/null
+++ b/test/built-ins/Number/prototype/toPrecision/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.3.5
+description: >
+  Number.prototype.toPrecision.name is "toPrecision".
+info: >
+  Number.prototype.toPrecision ( precision )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.prototype.toPrecision.name, "toPrecision");
+
+verifyNotEnumerable(Number.prototype.toPrecision, "name");
+verifyNotWritable(Number.prototype.toPrecision, "name");
+verifyConfigurable(Number.prototype.toPrecision, "name");
diff --git a/test/built-ins/Number/prototype/toString/length.js b/test/built-ins/Number/prototype/toString/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..7ae2e182dacca629882611c9ca6cda02455fc90d
--- /dev/null
+++ b/test/built-ins/Number/prototype/toString/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.3.6
+description: >
+  Number.prototype.toString.length is 1.
+info: >
+  Number.prototype.toString ( [ radix ] )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.prototype.toString.length, 1);
+
+verifyNotEnumerable(Number.prototype.toString, "length");
+verifyNotWritable(Number.prototype.toString, "length");
+verifyConfigurable(Number.prototype.toString, "length");
diff --git a/test/built-ins/Number/prototype/toString/name.js b/test/built-ins/Number/prototype/toString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..99e825b38d895b916cee98738b583ebe12bcd5e9
--- /dev/null
+++ b/test/built-ins/Number/prototype/toString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.3.6
+description: >
+  Number.prototype.toString.name is "toString".
+info: >
+  Number.prototype.toString ( [ radix ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.prototype.toString.name, "toString");
+
+verifyNotEnumerable(Number.prototype.toString, "name");
+verifyNotWritable(Number.prototype.toString, "name");
+verifyConfigurable(Number.prototype.toString, "name");
diff --git a/test/built-ins/Number/prototype/valueOf/length.js b/test/built-ins/Number/prototype/valueOf/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..7972f728fa5641d162a9503390dbec1b1cae1aba
--- /dev/null
+++ b/test/built-ins/Number/prototype/valueOf/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.3.7
+description: >
+  Number.prototype.valueOf.length is 0.
+info: >
+  Number.prototype.valueOf ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.prototype.valueOf.length, 0);
+
+verifyNotEnumerable(Number.prototype.valueOf, "length");
+verifyNotWritable(Number.prototype.valueOf, "length");
+verifyConfigurable(Number.prototype.valueOf, "length");
diff --git a/test/built-ins/Number/prototype/valueOf/name.js b/test/built-ins/Number/prototype/valueOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..1931f3686f5b88aeef54fdc4a5b5f820de6a8438
--- /dev/null
+++ b/test/built-ins/Number/prototype/valueOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.1.3.7
+description: >
+  Number.prototype.valueOf.name is "valueOf".
+info: >
+  Number.prototype.valueOf ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Number.prototype.valueOf.name, "valueOf");
+
+verifyNotEnumerable(Number.prototype.valueOf, "name");
+verifyNotWritable(Number.prototype.valueOf, "name");
+verifyConfigurable(Number.prototype.valueOf, "name");
diff --git a/test/built-ins/Object/create/name.js b/test/built-ins/Object/create/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..493a3805b1bc447efce45a0fddc91fb5bc6f176e
--- /dev/null
+++ b/test/built-ins/Object/create/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.2
+description: >
+  Object.create.name is "create".
+info: >
+  Object.create ( O [ , Properties ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.create.name, "create");
+
+verifyNotEnumerable(Object.create, "name");
+verifyNotWritable(Object.create, "name");
+verifyConfigurable(Object.create, "name");
diff --git a/test/built-ins/Object/defineProperties/name.js b/test/built-ins/Object/defineProperties/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a426d0c0287de51a5d3ca584ce8d703adb933c35
--- /dev/null
+++ b/test/built-ins/Object/defineProperties/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.3
+description: >
+  Object.defineProperties.name is "defineProperties".
+info: >
+  Object.defineProperties ( O, Properties )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.defineProperties.name, "defineProperties");
+
+verifyNotEnumerable(Object.defineProperties, "name");
+verifyNotWritable(Object.defineProperties, "name");
+verifyConfigurable(Object.defineProperties, "name");
diff --git a/test/built-ins/Object/defineProperty/name.js b/test/built-ins/Object/defineProperty/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..3437de49e4097e3d260ec0e808c6148a1326886e
--- /dev/null
+++ b/test/built-ins/Object/defineProperty/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.4
+description: >
+  Object.defineProperty.name is "defineProperty".
+info: >
+  Object.defineProperty ( O, P, Attributes )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.defineProperty.name, "defineProperty");
+
+verifyNotEnumerable(Object.defineProperty, "name");
+verifyNotWritable(Object.defineProperty, "name");
+verifyConfigurable(Object.defineProperty, "name");
diff --git a/test/built-ins/Object/freeze/name.js b/test/built-ins/Object/freeze/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..14e442292694c839e4eea0e6d8296fa02f3718bd
--- /dev/null
+++ b/test/built-ins/Object/freeze/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.5
+description: >
+  Object.freeze.name is "freeze".
+info: >
+  Object.freeze ( O )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.freeze.name, "freeze");
+
+verifyNotEnumerable(Object.freeze, "name");
+verifyNotWritable(Object.freeze, "name");
+verifyConfigurable(Object.freeze, "name");
diff --git a/test/built-ins/Object/getOwnPropertyDescriptor/name.js b/test/built-ins/Object/getOwnPropertyDescriptor/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a50d538455cffe128fe359c83ad77bc232d1c3cc
--- /dev/null
+++ b/test/built-ins/Object/getOwnPropertyDescriptor/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.6
+description: >
+  Object.getOwnPropertyDescriptor.name is "getOwnPropertyDescriptor".
+info: >
+  Object.getOwnPropertyDescriptor ( O, P )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.getOwnPropertyDescriptor.name, "getOwnPropertyDescriptor");
+
+verifyNotEnumerable(Object.getOwnPropertyDescriptor, "name");
+verifyNotWritable(Object.getOwnPropertyDescriptor, "name");
+verifyConfigurable(Object.getOwnPropertyDescriptor, "name");
diff --git a/test/built-ins/Object/getOwnPropertyNames/name.js b/test/built-ins/Object/getOwnPropertyNames/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..674b03428c01e29c47eb8f9c9420c4b14b867c48
--- /dev/null
+++ b/test/built-ins/Object/getOwnPropertyNames/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.7
+description: >
+  Object.getOwnPropertyNames.name is "getOwnPropertyNames".
+info: >
+  Object.getOwnPropertyNames ( O )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.getOwnPropertyNames.name, "getOwnPropertyNames");
+
+verifyNotEnumerable(Object.getOwnPropertyNames, "name");
+verifyNotWritable(Object.getOwnPropertyNames, "name");
+verifyConfigurable(Object.getOwnPropertyNames, "name");
diff --git a/test/built-ins/Object/getOwnPropertySymbols/length.js b/test/built-ins/Object/getOwnPropertySymbols/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..cbb62b1aa7f2b18c12201392574758189a61a777
--- /dev/null
+++ b/test/built-ins/Object/getOwnPropertySymbols/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.8
+description: >
+  Object.getOwnPropertySymbols.length is 1.
+info: >
+  Object.getOwnPropertySymbols ( O )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.getOwnPropertySymbols.length, 1);
+
+verifyNotEnumerable(Object.getOwnPropertySymbols, "length");
+verifyNotWritable(Object.getOwnPropertySymbols, "length");
+verifyConfigurable(Object.getOwnPropertySymbols, "length");
diff --git a/test/built-ins/Object/getOwnPropertySymbols/name.js b/test/built-ins/Object/getOwnPropertySymbols/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..7346a1e4d735f45318530148c20f473d824364ec
--- /dev/null
+++ b/test/built-ins/Object/getOwnPropertySymbols/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.8
+description: >
+  Object.getOwnPropertySymbols.name is "getOwnPropertySymbols".
+info: >
+  Object.getOwnPropertySymbols ( O )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.getOwnPropertySymbols.name, "getOwnPropertySymbols");
+
+verifyNotEnumerable(Object.getOwnPropertySymbols, "name");
+verifyNotWritable(Object.getOwnPropertySymbols, "name");
+verifyConfigurable(Object.getOwnPropertySymbols, "name");
diff --git a/test/built-ins/Object/getPrototypeOf/name.js b/test/built-ins/Object/getPrototypeOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..25c1527e21a637fccb6a4153b19b838aff4beffa
--- /dev/null
+++ b/test/built-ins/Object/getPrototypeOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.9
+description: >
+  Object.getPrototypeOf.name is "getPrototypeOf".
+info: >
+  Object.getPrototypeOf ( O )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf.name, "getPrototypeOf");
+
+verifyNotEnumerable(Object.getPrototypeOf, "name");
+verifyNotWritable(Object.getPrototypeOf, "name");
+verifyConfigurable(Object.getPrototypeOf, "name");
diff --git a/test/built-ins/Object/isExtensible/name.js b/test/built-ins/Object/isExtensible/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..66544d545b82ad35024e2ee1ea14bf3e8ad04e5d
--- /dev/null
+++ b/test/built-ins/Object/isExtensible/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.11
+description: >
+  Object.isExtensible.name is "isExtensible".
+info: >
+  Object.isExtensible ( O )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.isExtensible.name, "isExtensible");
+
+verifyNotEnumerable(Object.isExtensible, "name");
+verifyNotWritable(Object.isExtensible, "name");
+verifyConfigurable(Object.isExtensible, "name");
diff --git a/test/built-ins/Object/isFrozen/name.js b/test/built-ins/Object/isFrozen/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..c7c1bd00fc16852d1d5e5425775a52b4b0d952b2
--- /dev/null
+++ b/test/built-ins/Object/isFrozen/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.12
+description: >
+  Object.isFrozen.name is "isFrozen".
+info: >
+  Object.isFrozen ( O )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.isFrozen.name, "isFrozen");
+
+verifyNotEnumerable(Object.isFrozen, "name");
+verifyNotWritable(Object.isFrozen, "name");
+verifyConfigurable(Object.isFrozen, "name");
diff --git a/test/built-ins/Object/isSealed/name.js b/test/built-ins/Object/isSealed/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..6c7d502de7359ef6bc424ef2ec798dd345135a42
--- /dev/null
+++ b/test/built-ins/Object/isSealed/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.13
+description: >
+  Object.isSealed.name is "isSealed".
+info: >
+  Object.isSealed ( O )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.isSealed.name, "isSealed");
+
+verifyNotEnumerable(Object.isSealed, "name");
+verifyNotWritable(Object.isSealed, "name");
+verifyConfigurable(Object.isSealed, "name");
diff --git a/test/built-ins/Object/keys/name.js b/test/built-ins/Object/keys/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..264119a6f727a7546baafbb47e52811336a69af3
--- /dev/null
+++ b/test/built-ins/Object/keys/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.14
+description: >
+  Object.keys.name is "keys".
+info: >
+  Object.keys ( O )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.keys.name, "keys");
+
+verifyNotEnumerable(Object.keys, "name");
+verifyNotWritable(Object.keys, "name");
+verifyConfigurable(Object.keys, "name");
diff --git a/test/built-ins/Object/preventExtensions/name.js b/test/built-ins/Object/preventExtensions/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..5c1786cfacda3b5a399af5d04dd3d0d287170ae1
--- /dev/null
+++ b/test/built-ins/Object/preventExtensions/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.15
+description: >
+  Object.preventExtensions.name is "preventExtensions".
+info: >
+  Object.preventExtensions ( O )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.preventExtensions.name, "preventExtensions");
+
+verifyNotEnumerable(Object.preventExtensions, "name");
+verifyNotWritable(Object.preventExtensions, "name");
+verifyConfigurable(Object.preventExtensions, "name");
diff --git a/test/built-ins/Object/prototype/hasOwnProperty/name.js b/test/built-ins/Object/prototype/hasOwnProperty/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..917711f294b4e0321cf272078dd4c4c97e41e40d
--- /dev/null
+++ b/test/built-ins/Object/prototype/hasOwnProperty/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.3.2
+description: >
+  Object.prototype.hasOwnProperty.name is "hasOwnProperty".
+info: >
+  Object.prototype.hasOwnProperty ( V )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.prototype.hasOwnProperty.name, "hasOwnProperty");
+
+verifyNotEnumerable(Object.prototype.hasOwnProperty, "name");
+verifyNotWritable(Object.prototype.hasOwnProperty, "name");
+verifyConfigurable(Object.prototype.hasOwnProperty, "name");
diff --git a/test/built-ins/Object/prototype/isPrototypeOf/name.js b/test/built-ins/Object/prototype/isPrototypeOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..1bac4500f07ef5ef8d3a980d745bc2f261ba0c8a
--- /dev/null
+++ b/test/built-ins/Object/prototype/isPrototypeOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.3.3
+description: >
+  Object.prototype.isPrototypeOf.name is "isPrototypeOf".
+info: >
+  Object.prototype.isPrototypeOf ( V )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.prototype.isPrototypeOf.name, "isPrototypeOf");
+
+verifyNotEnumerable(Object.prototype.isPrototypeOf, "name");
+verifyNotWritable(Object.prototype.isPrototypeOf, "name");
+verifyConfigurable(Object.prototype.isPrototypeOf, "name");
diff --git a/test/built-ins/Object/prototype/propertyIsEnumerable/name.js b/test/built-ins/Object/prototype/propertyIsEnumerable/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..199b560d377d68b218dcd78ca64a53b4f8b9c09a
--- /dev/null
+++ b/test/built-ins/Object/prototype/propertyIsEnumerable/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.3.4
+description: >
+  Object.prototype.propertyIsEnumerable.name is "propertyIsEnumerable".
+info: >
+  Object.prototype.propertyIsEnumerable ( V )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.prototype.propertyIsEnumerable.name, "propertyIsEnumerable");
+
+verifyNotEnumerable(Object.prototype.propertyIsEnumerable, "name");
+verifyNotWritable(Object.prototype.propertyIsEnumerable, "name");
+verifyConfigurable(Object.prototype.propertyIsEnumerable, "name");
diff --git a/test/built-ins/Object/prototype/toLocaleString/name.js b/test/built-ins/Object/prototype/toLocaleString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..5fbb356afbb3c42d70dfc1cb25c3951d69fd2500
--- /dev/null
+++ b/test/built-ins/Object/prototype/toLocaleString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.3.5
+description: >
+  Object.prototype.toLocaleString.name is "toLocaleString".
+info: >
+  Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.prototype.toLocaleString.name, "toLocaleString");
+
+verifyNotEnumerable(Object.prototype.toLocaleString, "name");
+verifyNotWritable(Object.prototype.toLocaleString, "name");
+verifyConfigurable(Object.prototype.toLocaleString, "name");
diff --git a/test/built-ins/Object/prototype/toString/name.js b/test/built-ins/Object/prototype/toString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..d8fd3db8430dbeb275326721f60dea2f3a83cd6c
--- /dev/null
+++ b/test/built-ins/Object/prototype/toString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.3.6
+description: >
+  Object.prototype.toString.name is "toString".
+info: >
+  Object.prototype.toString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.prototype.toString.name, "toString");
+
+verifyNotEnumerable(Object.prototype.toString, "name");
+verifyNotWritable(Object.prototype.toString, "name");
+verifyConfigurable(Object.prototype.toString, "name");
diff --git a/test/built-ins/Object/prototype/valueOf/name.js b/test/built-ins/Object/prototype/valueOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..90900cc35e04b75a1145c0abe48cb8495c076cf2
--- /dev/null
+++ b/test/built-ins/Object/prototype/valueOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.3.7
+description: >
+  Object.prototype.valueOf.name is "valueOf".
+info: >
+  Object.prototype.valueOf ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.prototype.valueOf.name, "valueOf");
+
+verifyNotEnumerable(Object.prototype.valueOf, "name");
+verifyNotWritable(Object.prototype.valueOf, "name");
+verifyConfigurable(Object.prototype.valueOf, "name");
diff --git a/test/built-ins/Object/seal/name.js b/test/built-ins/Object/seal/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..951940a0c96106e84aae6d549de567ac436931d2
--- /dev/null
+++ b/test/built-ins/Object/seal/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.1.2.17
+description: >
+  Object.seal.name is "seal".
+info: >
+  Object.seal ( O )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Object.seal.name, "seal");
+
+verifyNotEnumerable(Object.seal, "name");
+verifyNotWritable(Object.seal, "name");
+verifyConfigurable(Object.seal, "name");
diff --git a/test/built-ins/Promise/Symbol.species/length.js b/test/built-ins/Promise/Symbol.species/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..708ab316dcb44b98ca7835dc5a879db5cd8cc490
--- /dev/null
+++ b/test/built-ins/Promise/Symbol.species/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 25.4.4.6
+description: >
+  get Promise [ @@species ].length is 0.
+info: >
+  get Promise [ @@species ]
+
+  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.
+
+    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: [Symbol.species]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(Promise, Symbol.species);
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/Promise/symbol-species-name.js b/test/built-ins/Promise/Symbol.species/symbol-species-name.js
similarity index 100%
rename from test/built-ins/Promise/symbol-species-name.js
rename to test/built-ins/Promise/Symbol.species/symbol-species-name.js
diff --git a/test/built-ins/Promise/symbol-species.js b/test/built-ins/Promise/Symbol.species/symbol-species.js
similarity index 100%
rename from test/built-ins/Promise/symbol-species.js
rename to test/built-ins/Promise/Symbol.species/symbol-species.js
diff --git a/test/built-ins/Proxy/revocable/length.js b/test/built-ins/Proxy/revocable/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..dfd24f1c5b5980a9181bdf74e3dc31ece1c7ae4d
--- /dev/null
+++ b/test/built-ins/Proxy/revocable/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 26.2.2.1
+description: >
+  Proxy.revocable.length is 2.
+info: >
+  Proxy.revocable ( target, handler )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Proxy.revocable.length, 2);
+
+verifyNotEnumerable(Proxy.revocable, "length");
+verifyNotWritable(Proxy.revocable, "length");
+verifyConfigurable(Proxy.revocable, "length");
diff --git a/test/built-ins/Proxy/revocable/name.js b/test/built-ins/Proxy/revocable/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..ac9239b2712ebc5ff2f92899fb72d19c25363910
--- /dev/null
+++ b/test/built-ins/Proxy/revocable/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 26.2.2.1
+description: >
+  Proxy.revocable.name is "revocable".
+info: >
+  Proxy.revocable ( target, handler )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Proxy.revocable.name, "revocable");
+
+verifyNotEnumerable(Proxy.revocable, "name");
+verifyNotWritable(Proxy.revocable, "name");
+verifyConfigurable(Proxy.revocable, "name");
diff --git a/test/built-ins/RegExp/Symbol.species/length.js b/test/built-ins/RegExp/Symbol.species/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..131178f027e1a0aa7cd413c2d46ea52cc16c6578
--- /dev/null
+++ b/test/built-ins/RegExp/Symbol.species/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.2.4.2
+description: >
+  get RegExp [ @@species ].length is 0.
+info: >
+  get RegExp [ @@species ]
+
+  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.
+
+    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: [Symbol.species]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(RegExp, Symbol.species);
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/RegExp/symbol-species-name.js b/test/built-ins/RegExp/Symbol.species/symbol-species-name.js
similarity index 100%
rename from test/built-ins/RegExp/symbol-species-name.js
rename to test/built-ins/RegExp/Symbol.species/symbol-species-name.js
diff --git a/test/built-ins/RegExp/symbol-species.js b/test/built-ins/RegExp/Symbol.species/symbol-species.js
similarity index 100%
rename from test/built-ins/RegExp/symbol-species.js
rename to test/built-ins/RegExp/Symbol.species/symbol-species.js
diff --git a/test/built-ins/RegExp/prototype/exec/name.js b/test/built-ins/RegExp/prototype/exec/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..cd145ec46c0b79e64c3d86d67962df0ca48a538f
--- /dev/null
+++ b/test/built-ins/RegExp/prototype/exec/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.2.5.2
+description: >
+  RegExp.prototype.exec.name is "exec".
+info: >
+  RegExp.prototype.exec ( string )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(RegExp.prototype.exec.name, "exec");
+
+verifyNotEnumerable(RegExp.prototype.exec, "name");
+verifyNotWritable(RegExp.prototype.exec, "name");
+verifyConfigurable(RegExp.prototype.exec, "name");
diff --git a/test/built-ins/RegExp/prototype/flags/length.js b/test/built-ins/RegExp/prototype/flags/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..daec3fce373f2188f19a3bd82f039183294e5d80
--- /dev/null
+++ b/test/built-ins/RegExp/prototype/flags/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.2.5.3
+description: >
+  get RegExp.prototype.flags.length is 0.
+info: >
+  get RegExp.prototype.flags
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "flags");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/RegExp/prototype/global/length.js b/test/built-ins/RegExp/prototype/global/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..70c4b2b0a6dbf356172674068fdf0f6b5f34dfdf
--- /dev/null
+++ b/test/built-ins/RegExp/prototype/global/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.2.5.4
+description: >
+  get RegExp.prototype.global.length is 0.
+info: >
+  get RegExp.prototype.global
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "global");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/RegExp/prototype/ignoreCase/length.js b/test/built-ins/RegExp/prototype/ignoreCase/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..7c7d0bf2f844c6520be1a445f95ef4accc2b2495
--- /dev/null
+++ b/test/built-ins/RegExp/prototype/ignoreCase/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.2.5.5
+description: >
+  get RegExp.prototype.ignoreCase.length is 0.
+info: >
+  get RegExp.prototype.ignoreCase
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "ignoreCase");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/RegExp/prototype/multiline/length.js b/test/built-ins/RegExp/prototype/multiline/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..f943406986796cfd928b857377a7f7bfa18c2f69
--- /dev/null
+++ b/test/built-ins/RegExp/prototype/multiline/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.2.5.7
+description: >
+  get RegExp.prototype.multiline.length is 0.
+info: >
+  get RegExp.prototype.multiline
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "multiline");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/RegExp/prototype/source/length.js b/test/built-ins/RegExp/prototype/source/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..15f53cd62bd1efa3bbe028e93f80fb2aec90187f
--- /dev/null
+++ b/test/built-ins/RegExp/prototype/source/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.2.5.10
+description: >
+  get RegExp.prototype.source.length is 0.
+info: >
+  get RegExp.prototype.source
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "source");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/RegExp/prototype/sticky/length.js b/test/built-ins/RegExp/prototype/sticky/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..f1431ad1122c5eb20edad2b471a03b97ca31d43e
--- /dev/null
+++ b/test/built-ins/RegExp/prototype/sticky/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.2.5.12
+description: >
+  get RegExp.prototype.sticky.length is 0.
+info: >
+  get RegExp.prototype.sticky
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, "sticky");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/RegExp/prototype/test/name.js b/test/built-ins/RegExp/prototype/test/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..d5d540f247c8da04d08bff694155bfc16c3b08e8
--- /dev/null
+++ b/test/built-ins/RegExp/prototype/test/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.2.5.13
+description: >
+  RegExp.prototype.test.name is "test".
+info: >
+  RegExp.prototype.test( S )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(RegExp.prototype.test.name, "test");
+
+verifyNotEnumerable(RegExp.prototype.test, "name");
+verifyNotWritable(RegExp.prototype.test, "name");
+verifyConfigurable(RegExp.prototype.test, "name");
diff --git a/test/built-ins/RegExp/prototype/toString/name.js b/test/built-ins/RegExp/prototype/toString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..ae81e6c770eb16379f79a8c19e9c7651d35d7eed
--- /dev/null
+++ b/test/built-ins/RegExp/prototype/toString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.2.5.14
+description: >
+  RegExp.prototype.toString.name is "toString".
+info: >
+  RegExp.prototype.toString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(RegExp.prototype.toString.name, "toString");
+
+verifyNotEnumerable(RegExp.prototype.toString, "name");
+verifyNotWritable(RegExp.prototype.toString, "name");
+verifyConfigurable(RegExp.prototype.toString, "name");
diff --git a/test/built-ins/Set/Symbol.species/length.js b/test/built-ins/Set/Symbol.species/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..35218eac4689915ae506fcfcf1c8213a0171dc56
--- /dev/null
+++ b/test/built-ins/Set/Symbol.species/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 23.2.2.2
+description: >
+  get Set [ @@species ].length is 0.
+info: >
+  get Set [ @@species ]
+
+  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.
+
+    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: [Symbol.species]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(Set, Symbol.species);
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/Set/symbol-species-name.js b/test/built-ins/Set/Symbol.species/symbol-species-name.js
similarity index 100%
rename from test/built-ins/Set/symbol-species-name.js
rename to test/built-ins/Set/Symbol.species/symbol-species-name.js
diff --git a/test/built-ins/Set/symbol-species.js b/test/built-ins/Set/Symbol.species/symbol-species.js
similarity index 100%
rename from test/built-ins/Set/symbol-species.js
rename to test/built-ins/Set/Symbol.species/symbol-species.js
diff --git a/test/built-ins/SetIteratorPrototype/next/length.js b/test/built-ins/SetIteratorPrototype/next/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..ac4f5918efe488fa68ce1fc0de2d4b09366fcafe
--- /dev/null
+++ b/test/built-ins/SetIteratorPrototype/next/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 23.2.5.2.1
+description: >
+  %SetIteratorPrototype%.next.length is 0.
+info: >
+  %SetIteratorPrototype%.next ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var SetIteratorProto = Object.getPrototypeOf(new Set().values());
+
+assert.sameValue(SetIteratorProto.next.length, 0);
+
+verifyNotEnumerable(SetIteratorProto.next, "length");
+verifyNotWritable(SetIteratorProto.next, "length");
+verifyConfigurable(SetIteratorProto.next, "length");
diff --git a/test/built-ins/SetIteratorPrototype/next/name.js b/test/built-ins/SetIteratorPrototype/next/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..9ce68e5628b0531238683b4e2715a7acd124329a
--- /dev/null
+++ b/test/built-ins/SetIteratorPrototype/next/name.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 23.2.5.2.1
+description: >
+  %SetIteratorPrototype%.next.name is "next".
+info: >
+  %SetIteratorPrototype%.next ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var SetIteratorProto = Object.getPrototypeOf(new Set().values());
+
+assert.sameValue(SetIteratorProto.next.name, "next");
+
+verifyNotEnumerable(SetIteratorProto.next, "name");
+verifyNotWritable(SetIteratorProto.next, "name");
+verifyConfigurable(SetIteratorProto.next, "name");
diff --git a/test/built-ins/String/fromCharCode/name.js b/test/built-ins/String/fromCharCode/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4f45d982c6b3c8773669be4f07836c39452140cc
--- /dev/null
+++ b/test/built-ins/String/fromCharCode/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.2.1
+description: >
+  String.fromCharCode.name is "fromCharCode".
+info: >
+  String.fromCharCode ( ...codeUnits )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.fromCharCode.name, "fromCharCode");
+
+verifyNotEnumerable(String.fromCharCode, "name");
+verifyNotWritable(String.fromCharCode, "name");
+verifyConfigurable(String.fromCharCode, "name");
diff --git a/test/built-ins/String/prototype/charAt/name.js b/test/built-ins/String/prototype/charAt/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..d451630a4d2fa1a3970c1904b7ee089654cdd238
--- /dev/null
+++ b/test/built-ins/String/prototype/charAt/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.1
+description: >
+  String.prototype.charAt.name is "charAt".
+info: >
+  String.prototype.charAt ( pos )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.charAt.name, "charAt");
+
+verifyNotEnumerable(String.prototype.charAt, "name");
+verifyNotWritable(String.prototype.charAt, "name");
+verifyConfigurable(String.prototype.charAt, "name");
diff --git a/test/built-ins/String/prototype/charCodeAt/name.js b/test/built-ins/String/prototype/charCodeAt/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a03bb78fe6179ab64ba9c96f8d2d960415d8ab35
--- /dev/null
+++ b/test/built-ins/String/prototype/charCodeAt/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.2
+description: >
+  String.prototype.charCodeAt.name is "charCodeAt".
+info: >
+  String.prototype.charCodeAt ( pos )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.charCodeAt.name, "charCodeAt");
+
+verifyNotEnumerable(String.prototype.charCodeAt, "name");
+verifyNotWritable(String.prototype.charCodeAt, "name");
+verifyConfigurable(String.prototype.charCodeAt, "name");
diff --git a/test/built-ins/String/prototype/concat/name.js b/test/built-ins/String/prototype/concat/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..c13d67f4b60f0198f20dd8a797c9a6d8b319af8e
--- /dev/null
+++ b/test/built-ins/String/prototype/concat/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.4
+description: >
+  String.prototype.concat.name is "concat".
+info: >
+  String.prototype.concat ( ...args )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.concat.name, "concat");
+
+verifyNotEnumerable(String.prototype.concat, "name");
+verifyNotWritable(String.prototype.concat, "name");
+verifyConfigurable(String.prototype.concat, "name");
diff --git a/test/built-ins/String/prototype/indexOf/name.js b/test/built-ins/String/prototype/indexOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..22fd3fc4df1c4f4d7a92c36f291d18f26fcf7c38
--- /dev/null
+++ b/test/built-ins/String/prototype/indexOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.8
+description: >
+  String.prototype.indexOf.name is "indexOf".
+info: >
+  String.prototype.indexOf ( searchString [ , position ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.indexOf.name, "indexOf");
+
+verifyNotEnumerable(String.prototype.indexOf, "name");
+verifyNotWritable(String.prototype.indexOf, "name");
+verifyConfigurable(String.prototype.indexOf, "name");
diff --git a/test/built-ins/String/prototype/lastIndexOf/name.js b/test/built-ins/String/prototype/lastIndexOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..d5b20dc0f27ee2418f759704c48da54bb63af6d4
--- /dev/null
+++ b/test/built-ins/String/prototype/lastIndexOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.9
+description: >
+  String.prototype.lastIndexOf.name is "lastIndexOf".
+info: >
+  String.prototype.lastIndexOf ( searchString [ , position ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.lastIndexOf.name, "lastIndexOf");
+
+verifyNotEnumerable(String.prototype.lastIndexOf, "name");
+verifyNotWritable(String.prototype.lastIndexOf, "name");
+verifyConfigurable(String.prototype.lastIndexOf, "name");
diff --git a/test/built-ins/String/prototype/localeCompare/name.js b/test/built-ins/String/prototype/localeCompare/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..91cac4add7322fdbc6441dd0f0512747023ff908
--- /dev/null
+++ b/test/built-ins/String/prototype/localeCompare/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.10
+description: >
+  String.prototype.localeCompare.name is "localeCompare".
+info: >
+  String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.localeCompare.name, "localeCompare");
+
+verifyNotEnumerable(String.prototype.localeCompare, "name");
+verifyNotWritable(String.prototype.localeCompare, "name");
+verifyConfigurable(String.prototype.localeCompare, "name");
diff --git a/test/built-ins/String/prototype/match/name.js b/test/built-ins/String/prototype/match/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..39eeb302c53e6ba04d924094b2c122905a9d609b
--- /dev/null
+++ b/test/built-ins/String/prototype/match/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.11
+description: >
+  String.prototype.match.name is "match".
+info: >
+  String.prototype.match ( regexp )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.match.name, "match");
+
+verifyNotEnumerable(String.prototype.match, "name");
+verifyNotWritable(String.prototype.match, "name");
+verifyConfigurable(String.prototype.match, "name");
diff --git a/test/built-ins/String/prototype/replace/name.js b/test/built-ins/String/prototype/replace/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..8b30cd0cd987b0b0635022e3e42901469c9df6bb
--- /dev/null
+++ b/test/built-ins/String/prototype/replace/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.14
+description: >
+  String.prototype.replace.name is "replace".
+info: >
+  String.prototype.replace (searchValue, replaceValue )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.replace.name, "replace");
+
+verifyNotEnumerable(String.prototype.replace, "name");
+verifyNotWritable(String.prototype.replace, "name");
+verifyConfigurable(String.prototype.replace, "name");
diff --git a/test/built-ins/String/prototype/search/name.js b/test/built-ins/String/prototype/search/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..5debfbc6e81ded19397b04b8f08712da50c382b9
--- /dev/null
+++ b/test/built-ins/String/prototype/search/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.15
+description: >
+  String.prototype.search.name is "search".
+info: >
+  String.prototype.search ( regexp )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.search.name, "search");
+
+verifyNotEnumerable(String.prototype.search, "name");
+verifyNotWritable(String.prototype.search, "name");
+verifyConfigurable(String.prototype.search, "name");
diff --git a/test/built-ins/String/prototype/slice/name.js b/test/built-ins/String/prototype/slice/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..99fe7683ed82ec9e28d2a46bb8bb855b95a8a446
--- /dev/null
+++ b/test/built-ins/String/prototype/slice/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.16
+description: >
+  String.prototype.slice.name is "slice".
+info: >
+  String.prototype.slice ( start, end )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.slice.name, "slice");
+
+verifyNotEnumerable(String.prototype.slice, "name");
+verifyNotWritable(String.prototype.slice, "name");
+verifyConfigurable(String.prototype.slice, "name");
diff --git a/test/built-ins/String/prototype/split/name.js b/test/built-ins/String/prototype/split/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..eb006c574cfdb84854311e3118a5a83b6a6e8d15
--- /dev/null
+++ b/test/built-ins/String/prototype/split/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.17
+description: >
+  String.prototype.split.name is "split".
+info: >
+  String.prototype.split ( separator, limit )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.split.name, "split");
+
+verifyNotEnumerable(String.prototype.split, "name");
+verifyNotWritable(String.prototype.split, "name");
+verifyConfigurable(String.prototype.split, "name");
diff --git a/test/built-ins/String/prototype/substring/name.js b/test/built-ins/String/prototype/substring/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..b377cd95fcee8b979770bddd47168ba5860f6345
--- /dev/null
+++ b/test/built-ins/String/prototype/substring/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.19
+description: >
+  String.prototype.substring.name is "substring".
+info: >
+  String.prototype.substring ( start, end )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.substring.name, "substring");
+
+verifyNotEnumerable(String.prototype.substring, "name");
+verifyNotWritable(String.prototype.substring, "name");
+verifyConfigurable(String.prototype.substring, "name");
diff --git a/test/built-ins/String/prototype/toLocaleLowerCase/name.js b/test/built-ins/String/prototype/toLocaleLowerCase/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..99487224728ffead10bae92963ab7638b3e36b84
--- /dev/null
+++ b/test/built-ins/String/prototype/toLocaleLowerCase/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.20
+description: >
+  String.prototype.toLocaleLowerCase.name is "toLocaleLowerCase".
+info: >
+  String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.toLocaleLowerCase.name, "toLocaleLowerCase");
+
+verifyNotEnumerable(String.prototype.toLocaleLowerCase, "name");
+verifyNotWritable(String.prototype.toLocaleLowerCase, "name");
+verifyConfigurable(String.prototype.toLocaleLowerCase, "name");
diff --git a/test/built-ins/String/prototype/toLocaleUpperCase/name.js b/test/built-ins/String/prototype/toLocaleUpperCase/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..79df515e6ff6602bb38d9b8876fac664a97af0c8
--- /dev/null
+++ b/test/built-ins/String/prototype/toLocaleUpperCase/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.21
+description: >
+  String.prototype.toLocaleUpperCase.name is "toLocaleUpperCase".
+info: >
+  String.prototype.toLocaleUpperCase ( [ reserved1 [ , reserved2 ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.toLocaleUpperCase.name, "toLocaleUpperCase");
+
+verifyNotEnumerable(String.prototype.toLocaleUpperCase, "name");
+verifyNotWritable(String.prototype.toLocaleUpperCase, "name");
+verifyConfigurable(String.prototype.toLocaleUpperCase, "name");
diff --git a/test/built-ins/String/prototype/toLowerCase/name.js b/test/built-ins/String/prototype/toLowerCase/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..bed742c8d0c563c350a6fe60ffefad87f2e7c5f0
--- /dev/null
+++ b/test/built-ins/String/prototype/toLowerCase/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.22
+description: >
+  String.prototype.toLowerCase.name is "toLowerCase".
+info: >
+  String.prototype.toLowerCase ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.toLowerCase.name, "toLowerCase");
+
+verifyNotEnumerable(String.prototype.toLowerCase, "name");
+verifyNotWritable(String.prototype.toLowerCase, "name");
+verifyConfigurable(String.prototype.toLowerCase, "name");
diff --git a/test/built-ins/String/prototype/toString/name.js b/test/built-ins/String/prototype/toString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..07cb2b4e8bc55097d3119cea0e6dd00b40e1d776
--- /dev/null
+++ b/test/built-ins/String/prototype/toString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.23
+description: >
+  String.prototype.toString.name is "toString".
+info: >
+  String.prototype.toString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.toString.name, "toString");
+
+verifyNotEnumerable(String.prototype.toString, "name");
+verifyNotWritable(String.prototype.toString, "name");
+verifyConfigurable(String.prototype.toString, "name");
diff --git a/test/built-ins/String/prototype/toUpperCase/name.js b/test/built-ins/String/prototype/toUpperCase/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..d8cf41937888c463b57a2c34445c0a884c5d8621
--- /dev/null
+++ b/test/built-ins/String/prototype/toUpperCase/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.24
+description: >
+  String.prototype.toUpperCase.name is "toUpperCase".
+info: >
+  String.prototype.toUpperCase ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.toUpperCase.name, "toUpperCase");
+
+verifyNotEnumerable(String.prototype.toUpperCase, "name");
+verifyNotWritable(String.prototype.toUpperCase, "name");
+verifyConfigurable(String.prototype.toUpperCase, "name");
diff --git a/test/built-ins/String/prototype/trim/name.js b/test/built-ins/String/prototype/trim/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..0747f2f0b0f397a654d33cf3730a0b967b8f6b14
--- /dev/null
+++ b/test/built-ins/String/prototype/trim/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.25
+description: >
+  String.prototype.trim.name is "trim".
+info: >
+  String.prototype.trim ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.trim.name, "trim");
+
+verifyNotEnumerable(String.prototype.trim, "name");
+verifyNotWritable(String.prototype.trim, "name");
+verifyConfigurable(String.prototype.trim, "name");
diff --git a/test/built-ins/String/prototype/valueOf/length.js b/test/built-ins/String/prototype/valueOf/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..d6de6ff023e288f5e02122daf22c7ca12ef2cab0
--- /dev/null
+++ b/test/built-ins/String/prototype/valueOf/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.26
+description: >
+  String.prototype.valueOf.length is 0.
+info: >
+  String.prototype.valueOf ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.valueOf.length, 0);
+
+verifyNotEnumerable(String.prototype.valueOf, "length");
+verifyNotWritable(String.prototype.valueOf, "length");
+verifyConfigurable(String.prototype.valueOf, "length");
diff --git a/test/built-ins/String/prototype/valueOf/name.js b/test/built-ins/String/prototype/valueOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..8b54a933bee57eb7586e31643d1f87acd4d08eda
--- /dev/null
+++ b/test/built-ins/String/prototype/valueOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.3.26
+description: >
+  String.prototype.valueOf.name is "valueOf".
+info: >
+  String.prototype.valueOf ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(String.prototype.valueOf.name, "valueOf");
+
+verifyNotEnumerable(String.prototype.valueOf, "name");
+verifyNotWritable(String.prototype.valueOf, "name");
+verifyConfigurable(String.prototype.valueOf, "name");
diff --git a/test/built-ins/StringIteratorPrototype/next/length.js b/test/built-ins/StringIteratorPrototype/next/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..21af8b102e6eeab2a567b27fd9e365ae1f425e8a
--- /dev/null
+++ b/test/built-ins/StringIteratorPrototype/next/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.5.2.1
+description: >
+  %StringIteratorPrototype%.next.length is 0.
+info: >
+  %StringIteratorPrototype%.next ( )
+
+  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.
+
+    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: [Symbol.iterator]
+---*/
+
+var StringIteratorProto = Object.getPrototypeOf(new String()[Symbol.iterator]());
+
+assert.sameValue(StringIteratorProto.next.length, 0);
+
+verifyNotEnumerable(StringIteratorProto.next, "length");
+verifyNotWritable(StringIteratorProto.next, "length");
+verifyConfigurable(StringIteratorProto.next, "length");
diff --git a/test/built-ins/StringIteratorPrototype/next/name.js b/test/built-ins/StringIteratorPrototype/next/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a0a9aae758d08426aa62d09dc91c79486dcd7d0b
--- /dev/null
+++ b/test/built-ins/StringIteratorPrototype/next/name.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 21.1.5.2.1
+description: >
+  %StringIteratorPrototype%.next.name is "next".
+info: >
+  %StringIteratorPrototype%.next ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+var StringIteratorProto = Object.getPrototypeOf(new String()[Symbol.iterator]());
+
+assert.sameValue(StringIteratorProto.next.name, "next");
+
+verifyNotEnumerable(StringIteratorProto.next, "name");
+verifyNotWritable(StringIteratorProto.next, "name");
+verifyConfigurable(StringIteratorProto.next, "name");
diff --git a/test/built-ins/Symbol/for/length.js b/test/built-ins/Symbol/for/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..488209b40b74a9d90a97effafeb5abdc2737754b
--- /dev/null
+++ b/test/built-ins/Symbol/for/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.4.2.1
+description: >
+  Symbol.for.length is 1.
+info: >
+  Symbol.for ( key )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Symbol.for.length, 1);
+
+verifyNotEnumerable(Symbol.for, "length");
+verifyNotWritable(Symbol.for, "length");
+verifyConfigurable(Symbol.for, "length");
diff --git a/test/built-ins/Symbol/for/name.js b/test/built-ins/Symbol/for/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..03f03b871c5d7a9d5a1d72efde703e940473f7a6
--- /dev/null
+++ b/test/built-ins/Symbol/for/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.4.2.1
+description: >
+  Symbol.for.name is "for".
+info: >
+  Symbol.for ( key )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Symbol.for.name, "for");
+
+verifyNotEnumerable(Symbol.for, "name");
+verifyNotWritable(Symbol.for, "name");
+verifyConfigurable(Symbol.for, "name");
diff --git a/test/built-ins/Symbol/keyFor/length.js b/test/built-ins/Symbol/keyFor/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..b16ed56d7474d4efb024f61d02466f21157f10ee
--- /dev/null
+++ b/test/built-ins/Symbol/keyFor/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.4.2.5
+description: >
+  Symbol.keyFor.length is 1.
+info: >
+  Symbol.keyFor ( sym )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Symbol.keyFor.length, 1);
+
+verifyNotEnumerable(Symbol.keyFor, "length");
+verifyNotWritable(Symbol.keyFor, "length");
+verifyConfigurable(Symbol.keyFor, "length");
diff --git a/test/built-ins/Symbol/keyFor/name.js b/test/built-ins/Symbol/keyFor/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..303622243faaaae135bb91c6dcb3980a7a86ad66
--- /dev/null
+++ b/test/built-ins/Symbol/keyFor/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.4.2.5
+description: >
+  Symbol.keyFor.name is "keyFor".
+info: >
+  Symbol.keyFor ( sym )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Symbol.keyFor.name, "keyFor");
+
+verifyNotEnumerable(Symbol.keyFor, "name");
+verifyNotWritable(Symbol.keyFor, "name");
+verifyConfigurable(Symbol.keyFor, "name");
diff --git a/test/built-ins/Symbol/prototype/toString/length.js b/test/built-ins/Symbol/prototype/toString/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..6346aaa7eef5d887ef53d34d250d52865a24d72e
--- /dev/null
+++ b/test/built-ins/Symbol/prototype/toString/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.4.3.2
+description: >
+  Symbol.prototype.toString.length is 0.
+info: >
+  Symbol.prototype.toString ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Symbol.prototype.toString.length, 0);
+
+verifyNotEnumerable(Symbol.prototype.toString, "length");
+verifyNotWritable(Symbol.prototype.toString, "length");
+verifyConfigurable(Symbol.prototype.toString, "length");
diff --git a/test/built-ins/Symbol/prototype/toString/name.js b/test/built-ins/Symbol/prototype/toString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..5876c30982b0d24142ae5f7942c2fd88241c45e0
--- /dev/null
+++ b/test/built-ins/Symbol/prototype/toString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.4.3.2
+description: >
+  Symbol.prototype.toString.name is "toString".
+info: >
+  Symbol.prototype.toString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Symbol.prototype.toString.name, "toString");
+
+verifyNotEnumerable(Symbol.prototype.toString, "name");
+verifyNotWritable(Symbol.prototype.toString, "name");
+verifyConfigurable(Symbol.prototype.toString, "name");
diff --git a/test/built-ins/Symbol/prototype/valueOf/length.js b/test/built-ins/Symbol/prototype/valueOf/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..0b77cc8169836b4306bf85e871ec474eb39eecae
--- /dev/null
+++ b/test/built-ins/Symbol/prototype/valueOf/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.4.3.3
+description: >
+  Symbol.prototype.valueOf.length is 0.
+info: >
+  Symbol.prototype.valueOf ( )
+
+  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.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Symbol.prototype.valueOf.length, 0);
+
+verifyNotEnumerable(Symbol.prototype.valueOf, "length");
+verifyNotWritable(Symbol.prototype.valueOf, "length");
+verifyConfigurable(Symbol.prototype.valueOf, "length");
diff --git a/test/built-ins/Symbol/prototype/valueOf/name.js b/test/built-ins/Symbol/prototype/valueOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..856448462e6d587764ada32ba00e1bd2a2d35dc1
--- /dev/null
+++ b/test/built-ins/Symbol/prototype/valueOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.4.3.3
+description: >
+  Symbol.prototype.valueOf.name is "valueOf".
+info: >
+  Symbol.prototype.valueOf ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Symbol.prototype.valueOf.name, "valueOf");
+
+verifyNotEnumerable(Symbol.prototype.valueOf, "name");
+verifyNotWritable(Symbol.prototype.valueOf, "name");
+verifyConfigurable(Symbol.prototype.valueOf, "name");
diff --git a/test/built-ins/TypedArray/Symbol.species/length.js b/test/built-ins/TypedArray/Symbol.species/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..98024f7f898d1a01cccc3e935cad10b995ba2553
--- /dev/null
+++ b/test/built-ins/TypedArray/Symbol.species/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.2.4
+description: >
+  get %TypedArray% [ @@species ].length is 0.
+info: >
+  get %TypedArray% [ @@species ]
+
+  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.
+
+    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: [Symbol.species]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray, Symbol.species);
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/TypedArray/Symbol.species/name.js b/test/built-ins/TypedArray/Symbol.species/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..00db42389be2b8b2d4b132e8a0890e4fc7e60fd2
--- /dev/null
+++ b/test/built-ins/TypedArray/Symbol.species/name.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.2.4
+description: >
+  get %TypedArray% [ @@species ].name is "get [Symbol.species]".
+info: >
+  get %TypedArray% [ @@species ]
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+features: [Symbol.species]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray, Symbol.species);
+
+assert.sameValue(desc.get.name, "get [Symbol.species]");
+
+verifyNotEnumerable(desc.get, "name");
+verifyNotWritable(desc.get, "name");
+verifyConfigurable(desc.get, "name");
diff --git a/test/built-ins/TypedArray/from/length.js b/test/built-ins/TypedArray/from/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..f01edd4d04a0f031e073d2230a078989afab8b4a
--- /dev/null
+++ b/test/built-ins/TypedArray/from/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.2.1
+description: >
+  %TypedArray%.from.length is 1.
+info: >
+  %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.from.length, 1);
+
+verifyNotEnumerable(TypedArray.from, "length");
+verifyNotWritable(TypedArray.from, "length");
+verifyConfigurable(TypedArray.from, "length");
diff --git a/test/built-ins/TypedArray/from/name.js b/test/built-ins/TypedArray/from/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..8074737405cf188dca5daac01ffba7b021eca610
--- /dev/null
+++ b/test/built-ins/TypedArray/from/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.2.1
+description: >
+  %TypedArray%.from.name is "from".
+info: >
+  %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.from.name, "from");
+
+verifyNotEnumerable(TypedArray.from, "name");
+verifyNotWritable(TypedArray.from, "name");
+verifyConfigurable(TypedArray.from, "name");
diff --git a/test/built-ins/TypedArray/of/length.js b/test/built-ins/TypedArray/of/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..22142c18df033d0369428496c672f22ac8024a51
--- /dev/null
+++ b/test/built-ins/TypedArray/of/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.2.2
+description: >
+  %TypedArray%.of.length is 0.
+info: >
+  %TypedArray%.of ( ...items )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.of.length, 0);
+
+verifyNotEnumerable(TypedArray.of, "length");
+verifyNotWritable(TypedArray.of, "length");
+verifyConfigurable(TypedArray.of, "length");
diff --git a/test/built-ins/TypedArray/of/name.js b/test/built-ins/TypedArray/of/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4107e5a68e52943f5507c773af0049479b636966
--- /dev/null
+++ b/test/built-ins/TypedArray/of/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.2.2
+description: >
+  %TypedArray%.of.name is "of".
+info: >
+  %TypedArray%.of ( ...items )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.of.name, "of");
+
+verifyNotEnumerable(TypedArray.of, "name");
+verifyNotWritable(TypedArray.of, "name");
+verifyConfigurable(TypedArray.of, "name");
diff --git a/test/built-ins/TypedArray/prototype/Symbol.iterator.js b/test/built-ins/TypedArray/prototype/Symbol.iterator.js
new file mode 100755
index 0000000000000000000000000000000000000000..6cd6ffd4a28b6a4301c0699d22c4fc809cfc5afb
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/Symbol.iterator.js
@@ -0,0 +1,22 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.30
+description: >
+  Initial state of the Symbol.iterator property
+info: >
+  The initial value of the @@iterator property is the same function object
+  as the initial value of the %TypedArray%.prototype.values property.
+
+  Per ES6 section 17, the method should exist on the %TypedArray% prototype, and it
+  should be writable and configurable, but not enumerable.
+includes: [propertyHelper.js, testTypedArray.js]
+features: [Symbol.iterator]
+---*/
+
+assert.sameValue(TypedArray.prototype[Symbol.iterator], TypedArray.prototype.values);
+
+verifyNotEnumerable(TypedArray.prototype, Symbol.iterator);
+verifyWritable(TypedArray.prototype, Symbol.iterator);
+verifyConfigurable(TypedArray.prototype, Symbol.iterator);
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/length.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..aef705bb92529eebfde6f95826518931a75480ca
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.31
+description: >
+  get %TypedArray%.prototype [ @@toStringTag ].length is 0.
+info: >
+  get %TypedArray%.prototype [ @@toStringTag ]
+
+  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.
+
+    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]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag);
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/name.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..256de62e4bca492b152a408a0548d18423637aa7
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/name.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.31
+description: >
+  get %TypedArray%.prototype [ @@toStringTag ].name is "get [Symbol.toStringTag]".
+info: >
+  get %TypedArray%.prototype [ @@toStringTag ]
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+features: [Symbol.toStringTag]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag);
+
+assert.sameValue(desc.get.name, "get [Symbol.toStringTag]");
+
+verifyNotEnumerable(desc.get, "name");
+verifyNotWritable(desc.get, "name");
+verifyConfigurable(desc.get, "name");
diff --git a/test/built-ins/TypedArray/prototype/buffer/length.js b/test/built-ins/TypedArray/prototype/buffer/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..edc885341c54aded6d6884dfa247db2c53bb7454
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/buffer/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.1
+description: >
+  get %TypedArray%.prototype.buffer.length is 0.
+info: >
+  get %TypedArray%.prototype.buffer
+
+  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.
+
+    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]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/TypedArray/prototype/buffer/name.js b/test/built-ins/TypedArray/prototype/buffer/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..9f68d17bebc381518bdd91274c4eb4ff8bb89855
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/buffer/name.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.1
+description: >
+  get %TypedArray%.prototype.buffer.name is "get buffer".
+info: >
+  get %TypedArray%.prototype.buffer
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray.prototype, "buffer");
+
+assert.sameValue(desc.get.name, "get buffer");
+
+verifyNotEnumerable(desc.get, "name");
+verifyNotWritable(desc.get, "name");
+verifyConfigurable(desc.get, "name");
diff --git a/test/built-ins/TypedArray/prototype/byteLength/length.js b/test/built-ins/TypedArray/prototype/byteLength/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..79fcb05baf8c79cdc4201619c3886d73cc83196e
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/byteLength/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.2
+description: >
+  get %TypedArray%.prototype.byteLength.length is 0.
+info: >
+  get %TypedArray%.prototype.byteLength
+
+  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.
+
+    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]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/TypedArray/prototype/byteLength/name.js b/test/built-ins/TypedArray/prototype/byteLength/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..afb15e61643cca8202b9a7c595d584056f21b184
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/byteLength/name.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.2
+description: >
+  get %TypedArray%.prototype.byteLength.name is "get byteLength".
+info: >
+  get %TypedArray%.prototype.byteLength
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteLength");
+
+assert.sameValue(desc.get.name, "get byteLength");
+
+verifyNotEnumerable(desc.get, "name");
+verifyNotWritable(desc.get, "name");
+verifyConfigurable(desc.get, "name");
diff --git a/test/built-ins/TypedArray/prototype/byteOffset/length.js b/test/built-ins/TypedArray/prototype/byteOffset/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..17755955b8b69aead4de22a4f4e4a3455189886d
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/byteOffset/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.3
+description: >
+  get %TypedArray%.prototype.byteOffset.length is 0.
+info: >
+  get %TypedArray%.prototype.byteOffset
+
+  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.
+
+    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]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/TypedArray/prototype/byteOffset/name.js b/test/built-ins/TypedArray/prototype/byteOffset/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..5fd4cba87485cecfb0ed3121c61b4187ac6b9a1a
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/byteOffset/name.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.3
+description: >
+  get %TypedArray%.prototype.byteOffset.name is "get byteOffset".
+info: >
+  get %TypedArray%.prototype.byteOffset
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray.prototype, "byteOffset");
+
+assert.sameValue(desc.get.name, "get byteOffset");
+
+verifyNotEnumerable(desc.get, "name");
+verifyNotWritable(desc.get, "name");
+verifyConfigurable(desc.get, "name");
diff --git a/test/built-ins/TypedArray/prototype/constructor.js b/test/built-ins/TypedArray/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..b0c13ebae31110b966c5bc15e61d07971bb80f98
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/constructor.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.4
+description: >
+  Initial state of the constructor property
+info: >
+  The initial value of %TypedArray%.prototype.constructor is the %TypedArray% intrinsic object.
+
+  Per ES6 section 17, the method should exist on the %TypedArray% prototype, and it
+  should be writable and configurable, but not enumerable.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.constructor, TypedArray);
+
+verifyNotEnumerable(TypedArray.prototype, "constructor");
+verifyWritable(TypedArray.prototype, "constructor");
+verifyConfigurable(TypedArray.prototype, "constructor");
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/length.js b/test/built-ins/TypedArray/prototype/copyWithin/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..d7449955552c6297c3af18087d3ab3bb93727e60
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/copyWithin/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.5
+description: >
+  %TypedArray%.prototype.copyWithin.length is 2.
+info: >
+  %TypedArray%.prototype.copyWithin (target, start [, end ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.copyWithin.length, 2);
+
+verifyNotEnumerable(TypedArray.prototype.copyWithin, "length");
+verifyNotWritable(TypedArray.prototype.copyWithin, "length");
+verifyConfigurable(TypedArray.prototype.copyWithin, "length");
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/name.js b/test/built-ins/TypedArray/prototype/copyWithin/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..98a3eadaf3846f8db82c02f1fd4e8f8d7b1bdcdb
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/copyWithin/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.5
+description: >
+  %TypedArray%.prototype.copyWithin.name is "copyWithin".
+info: >
+  %TypedArray%.prototype.copyWithin (target, start [, end ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.copyWithin.name, "copyWithin");
+
+verifyNotEnumerable(TypedArray.prototype.copyWithin, "name");
+verifyNotWritable(TypedArray.prototype.copyWithin, "name");
+verifyConfigurable(TypedArray.prototype.copyWithin, "name");
diff --git a/test/built-ins/TypedArray/prototype/entries/length.js b/test/built-ins/TypedArray/prototype/entries/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..282a8d170fe32fb2a76f2a62c713d14e95a51ef2
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/entries/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.6
+description: >
+  %TypedArray%.prototype.entries.length is 0.
+info: >
+  %TypedArray%.prototype.entries ( )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.entries.length, 0);
+
+verifyNotEnumerable(TypedArray.prototype.entries, "length");
+verifyNotWritable(TypedArray.prototype.entries, "length");
+verifyConfigurable(TypedArray.prototype.entries, "length");
diff --git a/test/built-ins/TypedArray/prototype/entries/name.js b/test/built-ins/TypedArray/prototype/entries/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..2d9ee5fe225fe6ecb179e9ebf955216b15fdf478
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/entries/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.6
+description: >
+  %TypedArray%.prototype.entries.name is "entries".
+info: >
+  %TypedArray%.prototype.entries ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.entries.name, "entries");
+
+verifyNotEnumerable(TypedArray.prototype.entries, "name");
+verifyNotWritable(TypedArray.prototype.entries, "name");
+verifyConfigurable(TypedArray.prototype.entries, "name");
diff --git a/test/built-ins/TypedArray/prototype/every/length.js b/test/built-ins/TypedArray/prototype/every/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..7f468c31141697668a318d12a5d5d989b4f76e91
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/every/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.7
+description: >
+  %TypedArray%.prototype.every.length is 1.
+info: >
+  %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.every.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.every, "length");
+verifyNotWritable(TypedArray.prototype.every, "length");
+verifyConfigurable(TypedArray.prototype.every, "length");
diff --git a/test/built-ins/TypedArray/prototype/every/name.js b/test/built-ins/TypedArray/prototype/every/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..8821bda57b9fc569ad3991a94c654db6adf8c0e1
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/every/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.7
+description: >
+  %TypedArray%.prototype.every.name is "every".
+info: >
+  %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.every.name, "every");
+
+verifyNotEnumerable(TypedArray.prototype.every, "name");
+verifyNotWritable(TypedArray.prototype.every, "name");
+verifyConfigurable(TypedArray.prototype.every, "name");
diff --git a/test/built-ins/TypedArray/prototype/fill/length.js b/test/built-ins/TypedArray/prototype/fill/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..d982a175ee7873136da2596bb26b79a3dc5dcd5d
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/fill/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.8
+description: >
+  %TypedArray%.prototype.fill.length is 1.
+info: >
+  %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.fill.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.fill, "length");
+verifyNotWritable(TypedArray.prototype.fill, "length");
+verifyConfigurable(TypedArray.prototype.fill, "length");
diff --git a/test/built-ins/TypedArray/prototype/fill/name.js b/test/built-ins/TypedArray/prototype/fill/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..cbfebbe1cabc9743847464654ac5cd46f544229d
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/fill/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.8
+description: >
+  %TypedArray%.prototype.fill.name is "fill".
+info: >
+  %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.fill.name, "fill");
+
+verifyNotEnumerable(TypedArray.prototype.fill, "name");
+verifyNotWritable(TypedArray.prototype.fill, "name");
+verifyConfigurable(TypedArray.prototype.fill, "name");
diff --git a/test/built-ins/TypedArray/prototype/filter/length.js b/test/built-ins/TypedArray/prototype/filter/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..971c89a0beb1022054f68359a6178059cdb41319
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/filter/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.9
+description: >
+  %TypedArray%.prototype.filter.length is 1.
+info: >
+  %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.filter.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.filter, "length");
+verifyNotWritable(TypedArray.prototype.filter, "length");
+verifyConfigurable(TypedArray.prototype.filter, "length");
diff --git a/test/built-ins/TypedArray/prototype/filter/name.js b/test/built-ins/TypedArray/prototype/filter/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..3a9d0b0c6d60bd6fa1ee060b77684f92366307d8
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/filter/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.9
+description: >
+  %TypedArray%.prototype.filter.name is "filter".
+info: >
+  %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.filter.name, "filter");
+
+verifyNotEnumerable(TypedArray.prototype.filter, "name");
+verifyNotWritable(TypedArray.prototype.filter, "name");
+verifyConfigurable(TypedArray.prototype.filter, "name");
diff --git a/test/built-ins/TypedArray/prototype/find/length.js b/test/built-ins/TypedArray/prototype/find/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..2f60b70e756345af34bfce9e00d6047c095eb8aa
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/find/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.10
+description: >
+  %TypedArray%.prototype.find.length is 1.
+info: >
+  %TypedArray%.prototype.find (predicate [ , thisArg ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.find.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.find, "length");
+verifyNotWritable(TypedArray.prototype.find, "length");
+verifyConfigurable(TypedArray.prototype.find, "length");
diff --git a/test/built-ins/TypedArray/prototype/find/name.js b/test/built-ins/TypedArray/prototype/find/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..dbebf61b015f054ab7401be41df4b5aeaffac00d
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/find/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.10
+description: >
+  %TypedArray%.prototype.find.name is "find".
+info: >
+  %TypedArray%.prototype.find (predicate [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.find.name, "find");
+
+verifyNotEnumerable(TypedArray.prototype.find, "name");
+verifyNotWritable(TypedArray.prototype.find, "name");
+verifyConfigurable(TypedArray.prototype.find, "name");
diff --git a/test/built-ins/TypedArray/prototype/findIndex/length.js b/test/built-ins/TypedArray/prototype/findIndex/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..c9845bea66697102e4ed16ee4f1e51455549cb1e
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/findIndex/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.11
+description: >
+  %TypedArray%.prototype.findIndex.length is 1.
+info: >
+  %TypedArray%.prototype.findIndex (predicate [ , thisArg ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.findIndex.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.findIndex, "length");
+verifyNotWritable(TypedArray.prototype.findIndex, "length");
+verifyConfigurable(TypedArray.prototype.findIndex, "length");
diff --git a/test/built-ins/TypedArray/prototype/findIndex/name.js b/test/built-ins/TypedArray/prototype/findIndex/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..1de6e6dda35b21fbf7be5b5aeb3c0f9d261fb664
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/findIndex/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.11
+description: >
+  %TypedArray%.prototype.findIndex.name is "findIndex".
+info: >
+  %TypedArray%.prototype.findIndex (predicate [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.findIndex.name, "findIndex");
+
+verifyNotEnumerable(TypedArray.prototype.findIndex, "name");
+verifyNotWritable(TypedArray.prototype.findIndex, "name");
+verifyConfigurable(TypedArray.prototype.findIndex, "name");
diff --git a/test/built-ins/TypedArray/prototype/forEach/length.js b/test/built-ins/TypedArray/prototype/forEach/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..b3f0ce22aa2efa8b7ec14d252b8fdf4907cf130c
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/forEach/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.12
+description: >
+  %TypedArray%.prototype.forEach.length is 1.
+info: >
+  %TypedArray%.prototype.forEach (callbackfn [ , thisArg ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.forEach.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.forEach, "length");
+verifyNotWritable(TypedArray.prototype.forEach, "length");
+verifyConfigurable(TypedArray.prototype.forEach, "length");
diff --git a/test/built-ins/TypedArray/prototype/forEach/name.js b/test/built-ins/TypedArray/prototype/forEach/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..622797206439afe278cf59ae325f1b6047156f94
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/forEach/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.12
+description: >
+  %TypedArray%.prototype.forEach.name is "forEach".
+info: >
+  %TypedArray%.prototype.forEach (callbackfn [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.forEach.name, "forEach");
+
+verifyNotEnumerable(TypedArray.prototype.forEach, "name");
+verifyNotWritable(TypedArray.prototype.forEach, "name");
+verifyConfigurable(TypedArray.prototype.forEach, "name");
diff --git a/test/built-ins/TypedArray/prototype/indexOf/length.js b/test/built-ins/TypedArray/prototype/indexOf/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..18c007d251ef0a04cd95130e0533f169c50ffdfc
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/indexOf/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.13
+description: >
+  %TypedArray%.prototype.indexOf.length is 1.
+info: >
+  %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.indexOf.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.indexOf, "length");
+verifyNotWritable(TypedArray.prototype.indexOf, "length");
+verifyConfigurable(TypedArray.prototype.indexOf, "length");
diff --git a/test/built-ins/TypedArray/prototype/indexOf/name.js b/test/built-ins/TypedArray/prototype/indexOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..0704aa233d5ac2adc4e5bc243997ed78c1e91a65
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/indexOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.13
+description: >
+  %TypedArray%.prototype.indexOf.name is "indexOf".
+info: >
+  %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.indexOf.name, "indexOf");
+
+verifyNotEnumerable(TypedArray.prototype.indexOf, "name");
+verifyNotWritable(TypedArray.prototype.indexOf, "name");
+verifyConfigurable(TypedArray.prototype.indexOf, "name");
diff --git a/test/built-ins/TypedArray/prototype/join/length.js b/test/built-ins/TypedArray/prototype/join/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..a6100f6c2a1f13ca5ce07b1011f1db77af664322
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/join/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.14
+description: >
+  %TypedArray%.prototype.join.length is 1.
+info: >
+  %TypedArray%.prototype.join ( separator )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.join.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.join, "length");
+verifyNotWritable(TypedArray.prototype.join, "length");
+verifyConfigurable(TypedArray.prototype.join, "length");
diff --git a/test/built-ins/TypedArray/prototype/join/name.js b/test/built-ins/TypedArray/prototype/join/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..8b947af6e7d581cdd3798ba1928e6cb795da6b7c
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/join/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.14
+description: >
+  %TypedArray%.prototype.join.name is "join".
+info: >
+  %TypedArray%.prototype.join ( separator )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.join.name, "join");
+
+verifyNotEnumerable(TypedArray.prototype.join, "name");
+verifyNotWritable(TypedArray.prototype.join, "name");
+verifyConfigurable(TypedArray.prototype.join, "name");
diff --git a/test/built-ins/TypedArray/prototype/keys/length.js b/test/built-ins/TypedArray/prototype/keys/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..9ccf6a9cecd2b8bab1e29c618e5ab3c841d6e79b
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/keys/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.15
+description: >
+  %TypedArray%.prototype.keys.length is 0.
+info: >
+  %TypedArray%.prototype.keys ( )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.keys.length, 0);
+
+verifyNotEnumerable(TypedArray.prototype.keys, "length");
+verifyNotWritable(TypedArray.prototype.keys, "length");
+verifyConfigurable(TypedArray.prototype.keys, "length");
diff --git a/test/built-ins/TypedArray/prototype/keys/name.js b/test/built-ins/TypedArray/prototype/keys/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..0bdcd0ca50cba9d641c8b32899ee9f50591722bf
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/keys/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.15
+description: >
+  %TypedArray%.prototype.keys.name is "keys".
+info: >
+  %TypedArray%.prototype.keys ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.keys.name, "keys");
+
+verifyNotEnumerable(TypedArray.prototype.keys, "name");
+verifyNotWritable(TypedArray.prototype.keys, "name");
+verifyConfigurable(TypedArray.prototype.keys, "name");
diff --git a/test/built-ins/TypedArray/prototype/lastIndexOf/length.js b/test/built-ins/TypedArray/prototype/lastIndexOf/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..4917754ba9c1ef9a428345defd38bda0e1f8f070
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/lastIndexOf/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.16
+description: >
+  %TypedArray%.prototype.lastIndexOf.length is 1.
+info: >
+  %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.lastIndexOf.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.lastIndexOf, "length");
+verifyNotWritable(TypedArray.prototype.lastIndexOf, "length");
+verifyConfigurable(TypedArray.prototype.lastIndexOf, "length");
diff --git a/test/built-ins/TypedArray/prototype/lastIndexOf/name.js b/test/built-ins/TypedArray/prototype/lastIndexOf/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..29ad823cea51aab601fceedf7c0dc24969047aab
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/lastIndexOf/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.16
+description: >
+  %TypedArray%.prototype.lastIndexOf.name is "lastIndexOf".
+info: >
+  %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.lastIndexOf.name, "lastIndexOf");
+
+verifyNotEnumerable(TypedArray.prototype.lastIndexOf, "name");
+verifyNotWritable(TypedArray.prototype.lastIndexOf, "name");
+verifyConfigurable(TypedArray.prototype.lastIndexOf, "name");
diff --git a/test/built-ins/TypedArray/prototype/length/length.js b/test/built-ins/TypedArray/prototype/length/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..debf94475ec27803d3ada15ae652ffc74fe40c72
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/length/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.17
+description: >
+  get %TypedArray%.prototype.length.length is 0.
+info: >
+  get %TypedArray%.prototype.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.
+
+    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]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray.prototype, "length");
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/TypedArray/prototype/length/name.js b/test/built-ins/TypedArray/prototype/length/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..7fb7ebeaa1e1faf07d1029a3c14fd96638775936
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/length/name.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.17
+description: >
+  get %TypedArray%.prototype.length.name is "get length".
+info: >
+  get %TypedArray%.prototype.length
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray.prototype, "length");
+
+assert.sameValue(desc.get.name, "get length");
+
+verifyNotEnumerable(desc.get, "name");
+verifyNotWritable(desc.get, "name");
+verifyConfigurable(desc.get, "name");
diff --git a/test/built-ins/TypedArray/prototype/map/length.js b/test/built-ins/TypedArray/prototype/map/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..ea93ba574c444b8aeae5d43a16aeb7bc82f70ec5
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/map/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.18
+description: >
+  %TypedArray%.prototype.map.length is 1.
+info: >
+  %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.map.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.map, "length");
+verifyNotWritable(TypedArray.prototype.map, "length");
+verifyConfigurable(TypedArray.prototype.map, "length");
diff --git a/test/built-ins/TypedArray/prototype/map/name.js b/test/built-ins/TypedArray/prototype/map/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..b20898dde5289e335e2144bd293e00e4edb8e9ff
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/map/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.18
+description: >
+  %TypedArray%.prototype.map.name is "map".
+info: >
+  %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.map.name, "map");
+
+verifyNotEnumerable(TypedArray.prototype.map, "name");
+verifyNotWritable(TypedArray.prototype.map, "name");
+verifyConfigurable(TypedArray.prototype.map, "name");
diff --git a/test/built-ins/TypedArray/prototype/reduce/length.js b/test/built-ins/TypedArray/prototype/reduce/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..fbb5f89d3da00b1f40ee2e11bed95ca79fa180d8
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/reduce/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.19
+description: >
+  %TypedArray%.prototype.reduce.length is 1.
+info: >
+  %TypedArray%.prototype.reduce ( callbackfn [ , thisArg ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.reduce.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.reduce, "length");
+verifyNotWritable(TypedArray.prototype.reduce, "length");
+verifyConfigurable(TypedArray.prototype.reduce, "length");
diff --git a/test/built-ins/TypedArray/prototype/reduce/name.js b/test/built-ins/TypedArray/prototype/reduce/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..45ea381d0df9f1cfcfd6cb8719355b8186b4bf43
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/reduce/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.19
+description: >
+  %TypedArray%.prototype.reduce.name is "reduce".
+info: >
+  %TypedArray%.prototype.reduce ( callbackfn [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.reduce.name, "reduce");
+
+verifyNotEnumerable(TypedArray.prototype.reduce, "name");
+verifyNotWritable(TypedArray.prototype.reduce, "name");
+verifyConfigurable(TypedArray.prototype.reduce, "name");
diff --git a/test/built-ins/TypedArray/prototype/reduceRight/length.js b/test/built-ins/TypedArray/prototype/reduceRight/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..8e4d76fe2b7ae1dbd1f400871f21a170f51f0010
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/reduceRight/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.20
+description: >
+  %TypedArray%.prototype.reduceRight.length is 1.
+info: >
+  %TypedArray%.prototype.reduceRight ( callbackfn [ , thisArg ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.reduceRight.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.reduceRight, "length");
+verifyNotWritable(TypedArray.prototype.reduceRight, "length");
+verifyConfigurable(TypedArray.prototype.reduceRight, "length");
diff --git a/test/built-ins/TypedArray/prototype/reduceRight/name.js b/test/built-ins/TypedArray/prototype/reduceRight/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..2e0d72f12e7d42e2f3c6121654574eda1c08f72e
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/reduceRight/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.20
+description: >
+  %TypedArray%.prototype.reduceRight.name is "reduceRight".
+info: >
+  %TypedArray%.prototype.reduceRight ( callbackfn [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.reduceRight.name, "reduceRight");
+
+verifyNotEnumerable(TypedArray.prototype.reduceRight, "name");
+verifyNotWritable(TypedArray.prototype.reduceRight, "name");
+verifyConfigurable(TypedArray.prototype.reduceRight, "name");
diff --git a/test/built-ins/TypedArray/prototype/reverse/length.js b/test/built-ins/TypedArray/prototype/reverse/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..f0b172102f96baf11563df5439491a707eddffbc
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/reverse/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.21
+description: >
+  %TypedArray%.prototype.reverse.length is 0.
+info: >
+  %TypedArray%.prototype.reverse ( )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.reverse.length, 0);
+
+verifyNotEnumerable(TypedArray.prototype.reverse, "length");
+verifyNotWritable(TypedArray.prototype.reverse, "length");
+verifyConfigurable(TypedArray.prototype.reverse, "length");
diff --git a/test/built-ins/TypedArray/prototype/reverse/name.js b/test/built-ins/TypedArray/prototype/reverse/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..6ece575d50a043dc3038a2085589192701a7545a
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/reverse/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.21
+description: >
+  %TypedArray%.prototype.reverse.name is "reverse".
+info: >
+  %TypedArray%.prototype.reverse ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.reverse.name, "reverse");
+
+verifyNotEnumerable(TypedArray.prototype.reverse, "name");
+verifyNotWritable(TypedArray.prototype.reverse, "name");
+verifyConfigurable(TypedArray.prototype.reverse, "name");
diff --git a/test/built-ins/TypedArray/prototype/set/length.js b/test/built-ins/TypedArray/prototype/set/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..9ab381fabdbe689b27976aacb6b4ba4c28b60949
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/set/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.22
+description: >
+  %TypedArray%.prototype.set.length is 1.
+info: >
+  %TypedArray%.prototype.set ( overloaded [ , offset ])
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.set.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.set, "length");
+verifyNotWritable(TypedArray.prototype.set, "length");
+verifyConfigurable(TypedArray.prototype.set, "length");
diff --git a/test/built-ins/TypedArray/prototype/set/name.js b/test/built-ins/TypedArray/prototype/set/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..5ad7933580a502ed6cf469005cfdf4b4d3adca06
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/set/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.22
+description: >
+  %TypedArray%.prototype.set.name is "set".
+info: >
+  %TypedArray%.prototype.set ( overloaded [ , offset ])
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.set.name, "set");
+
+verifyNotEnumerable(TypedArray.prototype.set, "name");
+verifyNotWritable(TypedArray.prototype.set, "name");
+verifyConfigurable(TypedArray.prototype.set, "name");
diff --git a/test/built-ins/TypedArray/prototype/slice/length.js b/test/built-ins/TypedArray/prototype/slice/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..2cc27d9c770bdc6508b1ee1d2f78e59279e43590
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/slice/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.23
+description: >
+  %TypedArray%.prototype.slice.length is 2.
+info: >
+  %TypedArray%.prototype.slice ( start, end )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.slice.length, 2);
+
+verifyNotEnumerable(TypedArray.prototype.slice, "length");
+verifyNotWritable(TypedArray.prototype.slice, "length");
+verifyConfigurable(TypedArray.prototype.slice, "length");
diff --git a/test/built-ins/TypedArray/prototype/slice/name.js b/test/built-ins/TypedArray/prototype/slice/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..f1bc5aed1122780d3233c9d1e75bec8d3c6bb569
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/slice/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.23
+description: >
+  %TypedArray%.prototype.slice.name is "slice".
+info: >
+  %TypedArray%.prototype.slice ( start, end )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.slice.name, "slice");
+
+verifyNotEnumerable(TypedArray.prototype.slice, "name");
+verifyNotWritable(TypedArray.prototype.slice, "name");
+verifyConfigurable(TypedArray.prototype.slice, "name");
diff --git a/test/built-ins/TypedArray/prototype/some/length.js b/test/built-ins/TypedArray/prototype/some/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..2403dc80dee71d3563d7736c59a3aba0ee74daef
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/some/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.24
+description: >
+  %TypedArray%.prototype.some.length is 1.
+info: >
+  %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.some.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.some, "length");
+verifyNotWritable(TypedArray.prototype.some, "length");
+verifyConfigurable(TypedArray.prototype.some, "length");
diff --git a/test/built-ins/TypedArray/prototype/some/name.js b/test/built-ins/TypedArray/prototype/some/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..13c87080e77c4ddb9a3dc5ab6213f8de323d5f50
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/some/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.24
+description: >
+  %TypedArray%.prototype.some.name is "some".
+info: >
+  %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.some.name, "some");
+
+verifyNotEnumerable(TypedArray.prototype.some, "name");
+verifyNotWritable(TypedArray.prototype.some, "name");
+verifyConfigurable(TypedArray.prototype.some, "name");
diff --git a/test/built-ins/TypedArray/prototype/sort/length.js b/test/built-ins/TypedArray/prototype/sort/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..9351ef9b19dd60ebe7fbf8c58295e44bd2caff50
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/sort/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.25
+description: >
+  %TypedArray%.prototype.sort.length is 1.
+info: >
+  %TypedArray%.prototype.sort ( comparefn )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.sort.length, 1);
+
+verifyNotEnumerable(TypedArray.prototype.sort, "length");
+verifyNotWritable(TypedArray.prototype.sort, "length");
+verifyConfigurable(TypedArray.prototype.sort, "length");
diff --git a/test/built-ins/TypedArray/prototype/sort/name.js b/test/built-ins/TypedArray/prototype/sort/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..9b7e77fa348a30a95c8bf7a8a224b247a65befeb
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/sort/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.25
+description: >
+  %TypedArray%.prototype.sort.name is "sort".
+info: >
+  %TypedArray%.prototype.sort ( comparefn )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.sort.name, "sort");
+
+verifyNotEnumerable(TypedArray.prototype.sort, "name");
+verifyNotWritable(TypedArray.prototype.sort, "name");
+verifyConfigurable(TypedArray.prototype.sort, "name");
diff --git a/test/built-ins/TypedArray/prototype/subarray/length.js b/test/built-ins/TypedArray/prototype/subarray/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..032b9cf7d33607dae27eb99358967ac1346ca641
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/subarray/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.26
+description: >
+  %TypedArray%.prototype.subarray.length is 2.
+info: >
+  %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.subarray.length, 2);
+
+verifyNotEnumerable(TypedArray.prototype.subarray, "length");
+verifyNotWritable(TypedArray.prototype.subarray, "length");
+verifyConfigurable(TypedArray.prototype.subarray, "length");
diff --git a/test/built-ins/TypedArray/prototype/subarray/name.js b/test/built-ins/TypedArray/prototype/subarray/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..4b30a1da82b55c73f76d44b2626696e4199caa1d
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/subarray/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.26
+description: >
+  %TypedArray%.prototype.subarray.name is "subarray".
+info: >
+  %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.subarray.name, "subarray");
+
+verifyNotEnumerable(TypedArray.prototype.subarray, "name");
+verifyNotWritable(TypedArray.prototype.subarray, "name");
+verifyConfigurable(TypedArray.prototype.subarray, "name");
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/length.js b/test/built-ins/TypedArray/prototype/toLocaleString/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..1a321aa72627f3dbd75151093b212d8568e19e8b
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.27
+description: >
+  %TypedArray%.prototype.toLocaleString.length is 0.
+info: >
+  %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.toLocaleString.length, 0);
+
+verifyNotEnumerable(TypedArray.prototype.toLocaleString, "length");
+verifyNotWritable(TypedArray.prototype.toLocaleString, "length");
+verifyConfigurable(TypedArray.prototype.toLocaleString, "length");
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/name.js b/test/built-ins/TypedArray/prototype/toLocaleString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..2e14cc23688f3d86826ea8b1cba14202f217afd5
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.27
+description: >
+  %TypedArray%.prototype.toLocaleString.name is "toLocaleString".
+info: >
+  %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.toLocaleString.name, "toLocaleString");
+
+verifyNotEnumerable(TypedArray.prototype.toLocaleString, "name");
+verifyNotWritable(TypedArray.prototype.toLocaleString, "name");
+verifyConfigurable(TypedArray.prototype.toLocaleString, "name");
diff --git a/test/built-ins/TypedArray/prototype/toString/length.js b/test/built-ins/TypedArray/prototype/toString/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..de6bea035d8c33794a06e616d8daa512a51ec850
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/toString/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.28
+description: >
+  %TypedArray%.prototype.toString.length is 0.
+info: >
+  %TypedArray%.prototype.toString ( )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.toString.length, 0);
+
+verifyNotEnumerable(TypedArray.prototype.toString, "length");
+verifyNotWritable(TypedArray.prototype.toString, "length");
+verifyConfigurable(TypedArray.prototype.toString, "length");
diff --git a/test/built-ins/TypedArray/prototype/toString/name.js b/test/built-ins/TypedArray/prototype/toString/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..d5e98315e97acec90882c4a5a4442bb3f64ab648
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/toString/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.28
+description: >
+  %TypedArray%.prototype.toString.name is "toString".
+info: >
+  %TypedArray%.prototype.toString ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.toString.name, "toString");
+
+verifyNotEnumerable(TypedArray.prototype.toString, "name");
+verifyNotWritable(TypedArray.prototype.toString, "name");
+verifyConfigurable(TypedArray.prototype.toString, "name");
diff --git a/test/built-ins/TypedArray/prototype/values/length.js b/test/built-ins/TypedArray/prototype/values/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..8a31ffc631ead51f53a5e470b6b7aea35b0b82cb
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/values/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.29
+description: >
+  %TypedArray%.prototype.values.length is 0.
+info: >
+  %TypedArray%.prototype.values ( )
+
+  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.
+
+    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]
+---*/
+
+assert.sameValue(TypedArray.prototype.values.length, 0);
+
+verifyNotEnumerable(TypedArray.prototype.values, "length");
+verifyNotWritable(TypedArray.prototype.values, "length");
+verifyConfigurable(TypedArray.prototype.values, "length");
diff --git a/test/built-ins/TypedArray/prototype/values/name.js b/test/built-ins/TypedArray/prototype/values/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..5f6f47a6c50c328860ee03680230f36ed92f7e42
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/values/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.3.29
+description: >
+  %TypedArray%.prototype.values.name is "values".
+info: >
+  %TypedArray%.prototype.values ( )
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testTypedArray.js]
+---*/
+
+assert.sameValue(TypedArray.prototype.values.name, "values");
+
+verifyNotEnumerable(TypedArray.prototype.values, "name");
+verifyNotWritable(TypedArray.prototype.values, "name");
+verifyConfigurable(TypedArray.prototype.values, "name");
diff --git a/test/built-ins/TypedArrays/Float32Array/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Float32Array/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..e10e79870f6b7ea8dcaba43c24ac96e7f6f4ee9f
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float32Array/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.1
+description: >
+  The initial value of Float32Array.BYTES_PER_ELEMENT is 4.
+info: >
+  The value of TypedArray.BYTES_PER_ELEMENT is the Number value of the
+  Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Float32Array.BYTES_PER_ELEMENT, 4);
+
+verifyNotEnumerable(Float32Array, "BYTES_PER_ELEMENT");
+verifyNotWritable(Float32Array, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Float32Array, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Float32Array/constructor.js b/test/built-ins/TypedArrays/Float32Array/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..8bafaf604ad850f7ab9c78e3501c6530c0172990
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float32Array/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4
+description: >
+  Float32Array is a constructor function.
+---*/
+
+assert.sameValue(typeof Float32Array, 'function', 'typeof Float32Array is "function"');
diff --git a/test/built-ins/TypedArrays/Float32Array/length.js b/test/built-ins/TypedArrays/Float32Array/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..87e51768c7f2ae7675fb771faebf2e02b57c1dac
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float32Array/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Float32Array.length is 3.
+info: >
+  Besides a length property (whose value 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, including optional
+    parameters. However, rest parameters 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]
+---*/
+
+assert.sameValue(Float32Array.length, 3);
+
+verifyNotEnumerable(Float32Array, "length");
+verifyNotWritable(Float32Array, "length");
+verifyConfigurable(Float32Array, "length");
diff --git a/test/built-ins/TypedArrays/Float32Array/name.js b/test/built-ins/TypedArrays/Float32Array/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..9cc98e9ce312651222d0ea329fe0b215bde7e064
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float32Array/name.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Float32Array.name is "Float32Array".
+info: >
+  Each TypedArray constructor has a name property whose value is the
+  String value of the constructor name specified for it in Table 49.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Float32Array.name, "Float32Array");
+
+verifyNotEnumerable(Float32Array, "name");
+verifyNotWritable(Float32Array, "name");
+verifyConfigurable(Float32Array, "name");
diff --git a/test/built-ins/TypedArrays/Float32Array/proto.js b/test/built-ins/TypedArrays/Float32Array/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..c1ec88e210872047d6cd6fdaed4f90b93d1e831b
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float32Array/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  The prototype of Float32Array is %TypedArray%.
+info: >
+  The value of the [[Prototype]] internal slot of each TypedArray constructor is the %TypedArray% intrinsic object (22.2.1).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Float32Array), TypedArray);
diff --git a/test/built-ins/TypedArrays/Float32Array/prototype.js b/test/built-ins/TypedArrays/Float32Array/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..d89d5a0832637d34bf844f7e86ead3e95648e9fa
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float32Array/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.2
+description: >
+  The initial value of Float32Array.prototype is the Float32Array prototype object.
+info: >
+  The initial value of TypedArray.prototype is the corresponding TypedArray prototype intrinsic object (22.2.6).
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Float32Array.prototype, Object.getPrototypeOf(new Float32Array(0)));
+
+verifyNotEnumerable(Float32Array, "prototype");
+verifyNotWritable(Float32Array, "prototype");
+verifyNotConfigurable(Float32Array, "prototype");
diff --git a/test/built-ins/TypedArrays/Float32Array/prototype/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Float32Array/prototype/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..704a81250af8263095904529437e56b361e47cc8
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float32Array/prototype/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.1
+description: >
+  The initial value of Float32Array.prototype.BYTES_PER_ELEMENT is 4.
+info: >
+  The value of TypedArray.prototype.BYTES_PER_ELEMENT is the Number value
+  of the Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Float32Array.prototype.BYTES_PER_ELEMENT, 4);
+
+verifyNotEnumerable(Float32Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotWritable(Float32Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Float32Array.prototype, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Float32Array/prototype/constructor.js b/test/built-ins/TypedArrays/Float32Array/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..20ae26cbac508261ce1beca09fdf9dd09220fac4
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float32Array/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.2
+description: >
+  The initial value of Float32Array.prototype.constructor is the Float32Array object.
+info: >
+  The initial value of Float32Array.prototype.constructor is the intrinsic
+  object %Float32Array%.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Float32Array.prototype.constructor, Float32Array);
+
+verifyNotEnumerable(Float32Array.prototype, "constructor");
+verifyWritable(Float32Array.prototype, "constructor");
+verifyConfigurable(Float32Array.prototype, "constructor");
diff --git a/test/built-ins/TypedArrays/Float32Array/prototype/not-typedarray-object.js b/test/built-ins/TypedArrays/Float32Array/prototype/not-typedarray-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..040cfdfd9248ba62efce61cb62681cfcb5b69162
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float32Array/prototype/not-typedarray-object.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  Float64Array.prototype is not a TypedArray instance object.
+info: >
+  A TypedArray prototype object is an ordinary object. It does not have
+  a [[ViewedArrayBuffer]] or any other of the internal slots that are
+  specific to TypedArray instance objects.
+---*/
+
+assert.throws(TypeError, function() {
+  Float64Array.prototype.buffer;
+});
diff --git a/test/built-ins/TypedArrays/Float32Array/prototype/proto.js b/test/built-ins/TypedArrays/Float32Array/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..be7aa52fc935ceac1aca07705fe07807bbec4a49
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float32Array/prototype/proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  The prototype of Float32Array.prototype is %TypedArrayPrototype%.
+info: >
+  The value of the [[Prototype]] internal slot of a TypedArray prototype
+  object is the intrinsic object %TypedArrayPrototype% (22.2.3).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Float32Array.prototype), TypedArray.prototype);
diff --git a/test/built-ins/TypedArrays/Float32Array/undefined-newtarget.js b/test/built-ins/TypedArrays/Float32Array/undefined-newtarget.js
new file mode 100755
index 0000000000000000000000000000000000000000..35478521bedb106f69714ccdb8ffc16093c29589
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float32Array/undefined-newtarget.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4.1
+description: >
+  Throws a TypeError if NewTarget is undefined.
+info: >
+  TypedArray( ... argumentsList)
+
+  1. If NewTarget is undefined, throw a TypeError exception.
+---*/
+
+assert.throws(TypeError, function() {
+  Float32Array();
+}, "Float32Array()");
+
+assert.throws(TypeError, function() {
+  Float32Array(0);
+}, "Float32Array(0)");
+
+assert.throws(TypeError, function() {
+  Float32Array(new Float32Array(1));
+}, "Float32Array(float32Array)");
+
+assert.throws(TypeError, function() {
+  Float32Array([]);
+}, "Float32Array(array)");
+
+assert.throws(TypeError, function() {
+  Float32Array(new ArrayBuffer(8));
+}, "Float32Array(arrayBuffer)");
diff --git a/test/built-ins/TypedArrays/Float64Array/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Float64Array/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..c7f757a45ae98ded2c1795dcec9c7020d9044519
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float64Array/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.1
+description: >
+  The initial value of Float64Array.BYTES_PER_ELEMENT is 8.
+info: >
+  The value of TypedArray.BYTES_PER_ELEMENT is the Number value of the
+  Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Float64Array.BYTES_PER_ELEMENT, 8);
+
+verifyNotEnumerable(Float64Array, "BYTES_PER_ELEMENT");
+verifyNotWritable(Float64Array, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Float64Array, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Float64Array/constructor.js b/test/built-ins/TypedArrays/Float64Array/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..ffe659ff7082ffdcd56abfaac444408337f9bbfb
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float64Array/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4
+description: >
+  Float64Array is a constructor function.
+---*/
+
+assert.sameValue(typeof Float64Array, 'function', 'typeof Float64Array is "function"');
diff --git a/test/built-ins/TypedArrays/Float64Array/length.js b/test/built-ins/TypedArrays/Float64Array/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..8d4cf37fc209f90afff096234c81ab2949470d27
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float64Array/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Float64Array.length is 3.
+info: >
+  Besides a length property (whose value 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, including optional
+    parameters. However, rest parameters 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]
+---*/
+
+assert.sameValue(Float64Array.length, 3);
+
+verifyNotEnumerable(Float64Array, "length");
+verifyNotWritable(Float64Array, "length");
+verifyConfigurable(Float64Array, "length");
diff --git a/test/built-ins/TypedArrays/Float64Array/name.js b/test/built-ins/TypedArrays/Float64Array/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..1b26bf941fbc224e139b74957d612e5a1a4b0524
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float64Array/name.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Float64Array.name is "Float64Array".
+info: >
+  Each TypedArray constructor has a name property whose value is the
+  String value of the constructor name specified for it in Table 49.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Float64Array.name, "Float64Array");
+
+verifyNotEnumerable(Float64Array, "name");
+verifyNotWritable(Float64Array, "name");
+verifyConfigurable(Float64Array, "name");
diff --git a/test/built-ins/TypedArrays/Float64Array/proto.js b/test/built-ins/TypedArrays/Float64Array/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..1593f7b46060d0bd6bca46b110658193865e174e
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float64Array/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  The prototype of Float64Array is %TypedArray%.
+info: >
+  The value of the [[Prototype]] internal slot of each TypedArray constructor is the %TypedArray% intrinsic object (22.2.1).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Float64Array), TypedArray);
diff --git a/test/built-ins/TypedArrays/Float64Array/prototype.js b/test/built-ins/TypedArrays/Float64Array/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..6a4fc7d46bfc846984c795202365a9bff9d80f2d
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float64Array/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.2
+description: >
+  The initial value of Float64Array.prototype is the Float64Array prototype object.
+info: >
+  The initial value of TypedArray.prototype is the corresponding TypedArray prototype intrinsic object (22.2.6).
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Float64Array.prototype, Object.getPrototypeOf(new Float64Array(0)));
+
+verifyNotEnumerable(Float64Array, "prototype");
+verifyNotWritable(Float64Array, "prototype");
+verifyNotConfigurable(Float64Array, "prototype");
diff --git a/test/built-ins/TypedArrays/Float64Array/prototype/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Float64Array/prototype/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..00200772b20d0590300a4651828ae180e039f71c
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float64Array/prototype/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.1
+description: >
+  The initial value of Float64Array.prototype.BYTES_PER_ELEMENT is 8.
+info: >
+  The value of TypedArray.prototype.BYTES_PER_ELEMENT is the Number value
+  of the Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Float64Array.prototype.BYTES_PER_ELEMENT, 8);
+
+verifyNotEnumerable(Float64Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotWritable(Float64Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Float64Array.prototype, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Float64Array/prototype/constructor.js b/test/built-ins/TypedArrays/Float64Array/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..1b7f70d84c0313ee459d25a4b4493d2e6aaf0477
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float64Array/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.2
+description: >
+  The initial value of Float64Array.prototype.constructor is the Float64Array object.
+info: >
+  The initial value of Float64Array.prototype.constructor is the intrinsic
+  object %Float64Array%.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Float64Array.prototype.constructor, Float64Array);
+
+verifyNotEnumerable(Float64Array.prototype, "constructor");
+verifyWritable(Float64Array.prototype, "constructor");
+verifyConfigurable(Float64Array.prototype, "constructor");
diff --git a/test/built-ins/TypedArrays/Float64Array/prototype/not-typedarray-object.js b/test/built-ins/TypedArrays/Float64Array/prototype/not-typedarray-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..040cfdfd9248ba62efce61cb62681cfcb5b69162
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float64Array/prototype/not-typedarray-object.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  Float64Array.prototype is not a TypedArray instance object.
+info: >
+  A TypedArray prototype object is an ordinary object. It does not have
+  a [[ViewedArrayBuffer]] or any other of the internal slots that are
+  specific to TypedArray instance objects.
+---*/
+
+assert.throws(TypeError, function() {
+  Float64Array.prototype.buffer;
+});
diff --git a/test/built-ins/TypedArrays/Float64Array/prototype/proto.js b/test/built-ins/TypedArrays/Float64Array/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..8723c653e48c1bf665d490e712a03e469f45a502
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float64Array/prototype/proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  The prototype of Float64Array.prototype is %TypedArrayPrototype%.
+info: >
+  The value of the [[Prototype]] internal slot of a TypedArray prototype
+  object is the intrinsic object %TypedArrayPrototype% (22.2.3).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Float64Array.prototype), TypedArray.prototype);
diff --git a/test/built-ins/TypedArrays/Float64Array/undefined-newtarget.js b/test/built-ins/TypedArrays/Float64Array/undefined-newtarget.js
new file mode 100755
index 0000000000000000000000000000000000000000..32ed0fb33b69a9dfa2bbcbeca330de3894c631ae
--- /dev/null
+++ b/test/built-ins/TypedArrays/Float64Array/undefined-newtarget.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4.1
+description: >
+  Throws a TypeError if NewTarget is undefined.
+info: >
+  TypedArray( ... argumentsList)
+
+  1. If NewTarget is undefined, throw a TypeError exception.
+---*/
+
+assert.throws(TypeError, function() {
+  Float64Array();
+}, "Float64Array()");
+
+assert.throws(TypeError, function() {
+  Float64Array(0);
+}, "Float64Array(0)");
+
+assert.throws(TypeError, function() {
+  Float64Array(new Float64Array(1));
+}, "Float64Array(float64Array)");
+
+assert.throws(TypeError, function() {
+  Float64Array([]);
+}, "Float64Array(array)");
+
+assert.throws(TypeError, function() {
+  Float64Array(new ArrayBuffer(8));
+}, "Float64Array(arrayBuffer)");
diff --git a/test/built-ins/TypedArrays/Int16Array/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Int16Array/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..9968e7e035380bb0a2a87af218c32cdc13b0448d
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int16Array/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.1
+description: >
+  The initial value of Int16Array.BYTES_PER_ELEMENT is 2.
+info: >
+  The value of TypedArray.BYTES_PER_ELEMENT is the Number value of the
+  Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int16Array.BYTES_PER_ELEMENT, 2);
+
+verifyNotEnumerable(Int16Array, "BYTES_PER_ELEMENT");
+verifyNotWritable(Int16Array, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Int16Array, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Int16Array/constructor.js b/test/built-ins/TypedArrays/Int16Array/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..d87ba38233c68a9e8c2907672603ca75598ad43a
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int16Array/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4
+description: >
+  Int16Array is a constructor function.
+---*/
+
+assert.sameValue(typeof Int16Array, 'function', 'typeof Int16Array is "function"');
diff --git a/test/built-ins/TypedArrays/Int16Array/length.js b/test/built-ins/TypedArrays/Int16Array/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..6d0286c869cc3d38b3068a8340d65fd4a45afed5
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int16Array/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Int16Array.length is 3.
+info: >
+  Besides a length property (whose value 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, including optional
+    parameters. However, rest parameters 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]
+---*/
+
+assert.sameValue(Int16Array.length, 3);
+
+verifyNotEnumerable(Int16Array, "length");
+verifyNotWritable(Int16Array, "length");
+verifyConfigurable(Int16Array, "length");
diff --git a/test/built-ins/TypedArrays/Int16Array/name.js b/test/built-ins/TypedArrays/Int16Array/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a5ff20f99f3fb6094eb58efbb5960d3844377f3a
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int16Array/name.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Int16Array.name is "Int16Array".
+info: >
+  Each TypedArray constructor has a name property whose value is the
+  String value of the constructor name specified for it in Table 49.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int16Array.name, "Int16Array");
+
+verifyNotEnumerable(Int16Array, "name");
+verifyNotWritable(Int16Array, "name");
+verifyConfigurable(Int16Array, "name");
diff --git a/test/built-ins/TypedArrays/Int16Array/proto.js b/test/built-ins/TypedArrays/Int16Array/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..d1fa53bbc8ac9c6293f2be60c5077333e7021c8a
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int16Array/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  The prototype of Int16Array is %TypedArray%.
+info: >
+  The value of the [[Prototype]] internal slot of each TypedArray constructor is the %TypedArray% intrinsic object (22.2.1).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Int16Array), TypedArray);
diff --git a/test/built-ins/TypedArrays/Int16Array/prototype.js b/test/built-ins/TypedArrays/Int16Array/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..0ef409d14e94b92e7b33805ebb74c7176238e17b
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int16Array/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.2
+description: >
+  The initial value of Int16Array.prototype is the Int16Array prototype object.
+info: >
+  The initial value of TypedArray.prototype is the corresponding TypedArray prototype intrinsic object (22.2.6).
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int16Array.prototype, Object.getPrototypeOf(new Int16Array(0)));
+
+verifyNotEnumerable(Int16Array, "prototype");
+verifyNotWritable(Int16Array, "prototype");
+verifyNotConfigurable(Int16Array, "prototype");
diff --git a/test/built-ins/TypedArrays/Int16Array/prototype/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Int16Array/prototype/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..d16dbb254684a7aa3f67655bda72c10c8da4de9e
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int16Array/prototype/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.1
+description: >
+  The initial value of Int16Array.prototype.BYTES_PER_ELEMENT is 2.
+info: >
+  The value of TypedArray.prototype.BYTES_PER_ELEMENT is the Number value
+  of the Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int16Array.prototype.BYTES_PER_ELEMENT, 2);
+
+verifyNotEnumerable(Int16Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotWritable(Int16Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Int16Array.prototype, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Int16Array/prototype/constructor.js b/test/built-ins/TypedArrays/Int16Array/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..e1a40604c3264cca6f80f6dd1024593d71415b77
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int16Array/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.2
+description: >
+  The initial value of Int16Array.prototype.constructor is the Int16Array object.
+info: >
+  The initial value of Int16Array.prototype.constructor is the intrinsic
+  object %Int16Array%.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int16Array.prototype.constructor, Int16Array);
+
+verifyNotEnumerable(Int16Array.prototype, "constructor");
+verifyWritable(Int16Array.prototype, "constructor");
+verifyConfigurable(Int16Array.prototype, "constructor");
diff --git a/test/built-ins/TypedArrays/Int16Array/prototype/not-typedarray-object.js b/test/built-ins/TypedArrays/Int16Array/prototype/not-typedarray-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..b277f1a3ac40397a729d08e43c8483e73527571c
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int16Array/prototype/not-typedarray-object.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  Int16Array.prototype is not a TypedArray instance object.
+info: >
+  A TypedArray prototype object is an ordinary object. It does not have
+  a [[ViewedArrayBuffer]] or any other of the internal slots that are
+  specific to TypedArray instance objects.
+---*/
+
+assert.throws(TypeError, function() {
+  Int16Array.prototype.buffer;
+});
diff --git a/test/built-ins/TypedArrays/Int16Array/prototype/proto.js b/test/built-ins/TypedArrays/Int16Array/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..6062dc8a50b7362246e3faa8627313476f20175e
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int16Array/prototype/proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  The prototype of Int16Array.prototype is %TypedArrayPrototype%.
+info: >
+  The value of the [[Prototype]] internal slot of a TypedArray prototype
+  object is the intrinsic object %TypedArrayPrototype% (22.2.3).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Int16Array.prototype), TypedArray.prototype);
diff --git a/test/built-ins/TypedArrays/Int16Array/undefined-newtarget.js b/test/built-ins/TypedArrays/Int16Array/undefined-newtarget.js
new file mode 100755
index 0000000000000000000000000000000000000000..664fc5ba0a52b5336101288d285704edbc01a69f
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int16Array/undefined-newtarget.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4.1
+description: >
+  Throws a TypeError if NewTarget is undefined.
+info: >
+  TypedArray( ... argumentsList)
+
+  1. If NewTarget is undefined, throw a TypeError exception.
+---*/
+
+assert.throws(TypeError, function() {
+  Int16Array();
+}, "Int16Array()");
+
+assert.throws(TypeError, function() {
+  Int16Array(0);
+}, "Int16Array(0)");
+
+assert.throws(TypeError, function() {
+  Int16Array(new Int16Array(1));
+}, "Int16Array(int16Array)");
+
+assert.throws(TypeError, function() {
+  Int16Array([]);
+}, "Int16Array(array)");
+
+assert.throws(TypeError, function() {
+  Int16Array(new ArrayBuffer(8));
+}, "Int16Array(arrayBuffer)");
diff --git a/test/built-ins/TypedArrays/Int32Array/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Int32Array/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..b7d62cce6aeeee0571f240475006f39d7db8b09d
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int32Array/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.1
+description: >
+  The initial value of Int32Array.BYTES_PER_ELEMENT is 4.
+info: >
+  The value of TypedArray.BYTES_PER_ELEMENT is the Number value of the
+  Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int32Array.BYTES_PER_ELEMENT, 4);
+
+verifyNotEnumerable(Int32Array, "BYTES_PER_ELEMENT");
+verifyNotWritable(Int32Array, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Int32Array, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Int32Array/constructor.js b/test/built-ins/TypedArrays/Int32Array/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..0ecfe5a2c1452122c2b3fd3f24a3e20a2fe29606
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int32Array/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4
+description: >
+  Int32Array is a constructor function.
+---*/
+
+assert.sameValue(typeof Int32Array, 'function', 'typeof Int32Array is "function"');
diff --git a/test/built-ins/TypedArrays/Int32Array/length.js b/test/built-ins/TypedArrays/Int32Array/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..c7aa8177cc572b853fb5b0a57039c4fbd0816a42
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int32Array/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Int32Array.length is 3.
+info: >
+  Besides a length property (whose value 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, including optional
+    parameters. However, rest parameters 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]
+---*/
+
+assert.sameValue(Int32Array.length, 3);
+
+verifyNotEnumerable(Int32Array, "length");
+verifyNotWritable(Int32Array, "length");
+verifyConfigurable(Int32Array, "length");
diff --git a/test/built-ins/TypedArrays/Int32Array/name.js b/test/built-ins/TypedArrays/Int32Array/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..04ed0815641d7a5818cf4b8566eb550e88e1fdd0
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int32Array/name.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Int32Array.name is "Int32Array".
+info: >
+  Each TypedArray constructor has a name property whose value is the
+  String value of the constructor name specified for it in Table 49.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int32Array.name, "Int32Array");
+
+verifyNotEnumerable(Int32Array, "name");
+verifyNotWritable(Int32Array, "name");
+verifyConfigurable(Int32Array, "name");
diff --git a/test/built-ins/TypedArrays/Int32Array/proto.js b/test/built-ins/TypedArrays/Int32Array/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..7c66d3dfcd8a098f1027e15f34f737b01dcfdd7c
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int32Array/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  The prototype of Int32Array is %TypedArray%.
+info: >
+  The value of the [[Prototype]] internal slot of each TypedArray constructor is the %TypedArray% intrinsic object (22.2.1).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Int32Array), TypedArray);
diff --git a/test/built-ins/TypedArrays/Int32Array/prototype.js b/test/built-ins/TypedArrays/Int32Array/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..3fffdbf165e82c202618737d468451607d4bbea9
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int32Array/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.2
+description: >
+  The initial value of Int32Array.prototype is the Int32Array prototype object.
+info: >
+  The initial value of TypedArray.prototype is the corresponding TypedArray prototype intrinsic object (22.2.6).
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int32Array.prototype, Object.getPrototypeOf(new Int32Array(0)));
+
+verifyNotEnumerable(Int32Array, "prototype");
+verifyNotWritable(Int32Array, "prototype");
+verifyNotConfigurable(Int32Array, "prototype");
diff --git a/test/built-ins/TypedArrays/Int32Array/prototype/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Int32Array/prototype/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..7cf54d8bfb6c6e0fc00f191792cf74784a64debd
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int32Array/prototype/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.1
+description: >
+  The initial value of Int32Array.prototype.BYTES_PER_ELEMENT is 4.
+info: >
+  The value of TypedArray.prototype.BYTES_PER_ELEMENT is the Number value
+  of the Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int32Array.prototype.BYTES_PER_ELEMENT, 4);
+
+verifyNotEnumerable(Int32Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotWritable(Int32Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Int32Array.prototype, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Int32Array/prototype/constructor.js b/test/built-ins/TypedArrays/Int32Array/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..fe8fd8fbf66ed8c73d1e376975412523c2561aaa
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int32Array/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.2
+description: >
+  The initial value of Int32Array.prototype.constructor is the Int32Array object.
+info: >
+  The initial value of Int32Array.prototype.constructor is the intrinsic
+  object %Int32Array%.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int32Array.prototype.constructor, Int32Array);
+
+verifyNotEnumerable(Int32Array.prototype, "constructor");
+verifyWritable(Int32Array.prototype, "constructor");
+verifyConfigurable(Int32Array.prototype, "constructor");
diff --git a/test/built-ins/TypedArrays/Int32Array/prototype/not-typedarray-object.js b/test/built-ins/TypedArrays/Int32Array/prototype/not-typedarray-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..0fd9b8948405d0eb09c62fc8adbd550a18b9762f
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int32Array/prototype/not-typedarray-object.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  Int32Array.prototype is not a TypedArray instance object.
+info: >
+  A TypedArray prototype object is an ordinary object. It does not have
+  a [[ViewedArrayBuffer]] or any other of the internal slots that are
+  specific to TypedArray instance objects.
+---*/
+
+assert.throws(TypeError, function() {
+  Int32Array.prototype.buffer;
+});
diff --git a/test/built-ins/TypedArrays/Int32Array/prototype/proto.js b/test/built-ins/TypedArrays/Int32Array/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..5a08b728210afccb05dd5b761b137687826cf16c
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int32Array/prototype/proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  The prototype of Int32Array.prototype is %TypedArrayPrototype%.
+info: >
+  The value of the [[Prototype]] internal slot of a TypedArray prototype
+  object is the intrinsic object %TypedArrayPrototype% (22.2.3).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Int32Array.prototype), TypedArray.prototype);
diff --git a/test/built-ins/TypedArrays/Int32Array/undefined-newtarget.js b/test/built-ins/TypedArrays/Int32Array/undefined-newtarget.js
new file mode 100755
index 0000000000000000000000000000000000000000..6f42e423c479479fd638c1b5b304ca63e1ecf650
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int32Array/undefined-newtarget.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4.1
+description: >
+  Throws a TypeError if NewTarget is undefined.
+info: >
+  TypedArray( ... argumentsList)
+
+  1. If NewTarget is undefined, throw a TypeError exception.
+---*/
+
+assert.throws(TypeError, function() {
+  Int32Array();
+}, "Int32Array()");
+
+assert.throws(TypeError, function() {
+  Int32Array(0);
+}, "Int32Array(0)");
+
+assert.throws(TypeError, function() {
+  Int32Array(new Int32Array(1));
+}, "Int32Array(int32Array)");
+
+assert.throws(TypeError, function() {
+  Int32Array([]);
+}, "Int32Array(array)");
+
+assert.throws(TypeError, function() {
+  Int32Array(new ArrayBuffer(8));
+}, "Int32Array(arrayBuffer)");
diff --git a/test/built-ins/TypedArrays/Int8Array/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Int8Array/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..ead0674eaa7101f5ce8bbf6e2e9928d9c3370d82
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int8Array/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.1
+description: >
+  The initial value of Int8Array.BYTES_PER_ELEMENT is 1.
+info: >
+  The value of TypedArray.BYTES_PER_ELEMENT is the Number value of the
+  Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int8Array.BYTES_PER_ELEMENT, 1);
+
+verifyNotEnumerable(Int8Array, "BYTES_PER_ELEMENT");
+verifyNotWritable(Int8Array, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Int8Array, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Int8Array/constructor.js b/test/built-ins/TypedArrays/Int8Array/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..7dd8e916d39bfc105fd19622be09b6feed29a236
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int8Array/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4
+description: >
+  Int8Array is a constructor function.
+---*/
+
+assert.sameValue(typeof Int8Array, 'function', 'typeof Int8Array is "function"');
diff --git a/test/built-ins/TypedArrays/Int8Array/length.js b/test/built-ins/TypedArrays/Int8Array/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..042071baf73074cb86983557a47ed31ab32991e7
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int8Array/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Int8Array.length is 3.
+info: >
+  Besides a length property (whose value 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, including optional
+    parameters. However, rest parameters 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]
+---*/
+
+assert.sameValue(Int8Array.length, 3);
+
+verifyNotEnumerable(Int8Array, "length");
+verifyNotWritable(Int8Array, "length");
+verifyConfigurable(Int8Array, "length");
diff --git a/test/built-ins/TypedArrays/Int8Array/name.js b/test/built-ins/TypedArrays/Int8Array/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..f6f06b97c3d15b026f4a1b195411fa819d7f3cd0
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int8Array/name.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Int8Array.name is "Int8Array".
+info: >
+  Each TypedArray constructor has a name property whose value is the
+  String value of the constructor name specified for it in Table 49.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int8Array.name, "Int8Array");
+
+verifyNotEnumerable(Int8Array, "name");
+verifyNotWritable(Int8Array, "name");
+verifyConfigurable(Int8Array, "name");
diff --git a/test/built-ins/TypedArrays/Int8Array/proto.js b/test/built-ins/TypedArrays/Int8Array/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..d9a6b7445521657073bda81ff4c21f76b75a8b78
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int8Array/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  The prototype of Int8Array is %TypedArray%.
+info: >
+  The value of the [[Prototype]] internal slot of each TypedArray constructor is the %TypedArray% intrinsic object (22.2.1).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Int8Array), TypedArray);
diff --git a/test/built-ins/TypedArrays/Int8Array/prototype.js b/test/built-ins/TypedArrays/Int8Array/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..776d23e5b4de22072f519669cb95fb77d8d49c98
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int8Array/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.2
+description: >
+  The initial value of Int8Array.prototype is the Int8Array prototype object.
+info: >
+  The initial value of TypedArray.prototype is the corresponding TypedArray prototype intrinsic object (22.2.6).
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int8Array.prototype, Object.getPrototypeOf(new Int8Array(0)));
+
+verifyNotEnumerable(Int8Array, "prototype");
+verifyNotWritable(Int8Array, "prototype");
+verifyNotConfigurable(Int8Array, "prototype");
diff --git a/test/built-ins/TypedArrays/Int8Array/prototype/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Int8Array/prototype/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..7ea04b4dc7cca131df9c8b5f7a4b2bbf23b20ea5
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int8Array/prototype/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.1
+description: >
+  The initial value of Int8Array.prototype.BYTES_PER_ELEMENT is 1.
+info: >
+  The value of TypedArray.prototype.BYTES_PER_ELEMENT is the Number value
+  of the Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int8Array.prototype.BYTES_PER_ELEMENT, 1);
+
+verifyNotEnumerable(Int8Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotWritable(Int8Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Int8Array.prototype, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Int8Array/prototype/constructor.js b/test/built-ins/TypedArrays/Int8Array/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..3eff21994160c10f2a8077fe9314b414b55a2cbd
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int8Array/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.2
+description: >
+  The initial value of Int8Array.prototype.constructor is the Int8Array object.
+info: >
+  The initial value of Int8Array.prototype.constructor is the intrinsic
+  object %Int8Array%.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Int8Array.prototype.constructor, Int8Array);
+
+verifyNotEnumerable(Int8Array.prototype, "constructor");
+verifyWritable(Int8Array.prototype, "constructor");
+verifyConfigurable(Int8Array.prototype, "constructor");
diff --git a/test/built-ins/TypedArrays/Int8Array/prototype/not-typedarray-object.js b/test/built-ins/TypedArrays/Int8Array/prototype/not-typedarray-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..263b4115b5c8615754934936bb0f4331e5e0f3ae
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int8Array/prototype/not-typedarray-object.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  Int8Array.prototype is not a TypedArray instance object.
+info: >
+  A TypedArray prototype object is an ordinary object. It does not have
+  a [[ViewedArrayBuffer]] or any other of the internal slots that are
+  specific to TypedArray instance objects.
+---*/
+
+assert.throws(TypeError, function() {
+  Int8Array.prototype.buffer;
+});
diff --git a/test/built-ins/TypedArrays/Int8Array/prototype/proto.js b/test/built-ins/TypedArrays/Int8Array/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..c65de67f186fd719ef66595d8284e51ba26b5da9
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int8Array/prototype/proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  The prototype of Int8Array.prototype is %TypedArrayPrototype%.
+info: >
+  The value of the [[Prototype]] internal slot of a TypedArray prototype
+  object is the intrinsic object %TypedArrayPrototype% (22.2.3).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Int8Array.prototype), TypedArray.prototype);
diff --git a/test/built-ins/TypedArrays/Int8Array/undefined-newtarget.js b/test/built-ins/TypedArrays/Int8Array/undefined-newtarget.js
new file mode 100755
index 0000000000000000000000000000000000000000..4a3f8dc17e14dc86322776b6153f81246935ba13
--- /dev/null
+++ b/test/built-ins/TypedArrays/Int8Array/undefined-newtarget.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4.1
+description: >
+  Throws a TypeError if NewTarget is undefined.
+info: >
+  TypedArray( ... argumentsList)
+
+  1. If NewTarget is undefined, throw a TypeError exception.
+---*/
+
+assert.throws(TypeError, function() {
+  Int8Array();
+}, "Int8Array()");
+
+assert.throws(TypeError, function() {
+  Int8Array(0);
+}, "Int8Array(0)");
+
+assert.throws(TypeError, function() {
+  Int8Array(new Int8Array(1));
+}, "Int8Array(int8Array)");
+
+assert.throws(TypeError, function() {
+  Int8Array([]);
+}, "Int8Array(array)");
+
+assert.throws(TypeError, function() {
+  Int8Array(new ArrayBuffer(8));
+}, "Int8Array(arrayBuffer)");
diff --git a/test/built-ins/TypedArrays/Uint16Array/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Uint16Array/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..1a5205892525b503355f1e92f9a2da76c4847af4
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint16Array/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.1
+description: >
+  The initial value of Uint16Array.BYTES_PER_ELEMENT is 2.
+info: >
+  The value of TypedArray.BYTES_PER_ELEMENT is the Number value of the
+  Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint16Array.BYTES_PER_ELEMENT, 2);
+
+verifyNotEnumerable(Uint16Array, "BYTES_PER_ELEMENT");
+verifyNotWritable(Uint16Array, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Uint16Array, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Uint16Array/constructor.js b/test/built-ins/TypedArrays/Uint16Array/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..79dbf82aef390d83f6f26842ebc9b7e478897f1a
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint16Array/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4
+description: >
+  Uint16Array is a constructor function.
+---*/
+
+assert.sameValue(typeof Uint16Array, 'function', 'typeof Uint16Array is "function"');
diff --git a/test/built-ins/TypedArrays/Uint16Array/length.js b/test/built-ins/TypedArrays/Uint16Array/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..9b54e8b91c1c062731ec2b5a9f844cd5237bf8f1
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint16Array/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Uint16Array.length is 3.
+info: >
+  Besides a length property (whose value 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, including optional
+    parameters. However, rest parameters 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]
+---*/
+
+assert.sameValue(Uint16Array.length, 3);
+
+verifyNotEnumerable(Uint16Array, "length");
+verifyNotWritable(Uint16Array, "length");
+verifyConfigurable(Uint16Array, "length");
diff --git a/test/built-ins/TypedArrays/Uint16Array/name.js b/test/built-ins/TypedArrays/Uint16Array/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..e26a811db1781e7cf6dcd64d13dc0e28a51f81c8
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint16Array/name.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Uint16Array.name is "Uint16Array".
+info: >
+  Each TypedArray constructor has a name property whose value is the
+  String value of the constructor name specified for it in Table 49.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint16Array.name, "Uint16Array");
+
+verifyNotEnumerable(Uint16Array, "name");
+verifyNotWritable(Uint16Array, "name");
+verifyConfigurable(Uint16Array, "name");
diff --git a/test/built-ins/TypedArrays/Uint16Array/proto.js b/test/built-ins/TypedArrays/Uint16Array/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..0dbb97a4a9df7075db655e6fe5ab0af51df62d1c
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint16Array/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  The prototype of Uint16Array is %TypedArray%.
+info: >
+  The value of the [[Prototype]] internal slot of each TypedArray constructor is the %TypedArray% intrinsic object (22.2.1).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Uint16Array), TypedArray);
diff --git a/test/built-ins/TypedArrays/Uint16Array/prototype.js b/test/built-ins/TypedArrays/Uint16Array/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..0decd7356f9481309df6cc6499482bdbd8e63c48
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint16Array/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.2
+description: >
+  The initial value of Uint16Array.prototype is the Uint16Array prototype object.
+info: >
+  The initial value of TypedArray.prototype is the corresponding TypedArray prototype intrinsic object (22.2.6).
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint16Array.prototype, Object.getPrototypeOf(new Uint16Array(0)));
+
+verifyNotEnumerable(Uint16Array, "prototype");
+verifyNotWritable(Uint16Array, "prototype");
+verifyNotConfigurable(Uint16Array, "prototype");
diff --git a/test/built-ins/TypedArrays/Uint16Array/prototype/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Uint16Array/prototype/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..f0e11a48fc51da1395afb40b552a1afdc4cd62a5
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint16Array/prototype/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.1
+description: >
+  The initial value of Uint16Array.prototype.BYTES_PER_ELEMENT is 2.
+info: >
+  The value of TypedArray.prototype.BYTES_PER_ELEMENT is the Number value
+  of the Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint16Array.prototype.BYTES_PER_ELEMENT, 2);
+
+verifyNotEnumerable(Uint16Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotWritable(Uint16Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Uint16Array.prototype, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Uint16Array/prototype/constructor.js b/test/built-ins/TypedArrays/Uint16Array/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..48653c2826dd7f7514cd7aabc138658190da3d3d
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint16Array/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.2
+description: >
+  The initial value of Uint16Array.prototype.constructor is the Uint16Array object.
+info: >
+  The initial value of Uint16Array.prototype.constructor is the intrinsic
+  object %Uint16Array%.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint16Array.prototype.constructor, Uint16Array);
+
+verifyNotEnumerable(Uint16Array.prototype, "constructor");
+verifyWritable(Uint16Array.prototype, "constructor");
+verifyConfigurable(Uint16Array.prototype, "constructor");
diff --git a/test/built-ins/TypedArrays/Uint16Array/prototype/not-typedarray-object.js b/test/built-ins/TypedArrays/Uint16Array/prototype/not-typedarray-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..4f24c6373c102ceb0fc9a54048081205c5b20729
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint16Array/prototype/not-typedarray-object.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  Uint16Array.prototype is not a TypedArray instance object.
+info: >
+  A TypedArray prototype object is an ordinary object. It does not have
+  a [[ViewedArrayBuffer]] or any other of the internal slots that are
+  specific to TypedArray instance objects.
+---*/
+
+assert.throws(TypeError, function() {
+  Uint16Array.prototype.buffer;
+});
diff --git a/test/built-ins/TypedArrays/Uint16Array/prototype/proto.js b/test/built-ins/TypedArrays/Uint16Array/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..370c91c9bc0155e5b724bdcf0a2f39a85681f7c2
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint16Array/prototype/proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  The prototype of Uint16Array.prototype is %TypedArrayPrototype%.
+info: >
+  The value of the [[Prototype]] internal slot of a TypedArray prototype
+  object is the intrinsic object %TypedArrayPrototype% (22.2.3).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Uint16Array.prototype), TypedArray.prototype);
diff --git a/test/built-ins/TypedArrays/Uint16Array/undefined-newtarget.js b/test/built-ins/TypedArrays/Uint16Array/undefined-newtarget.js
new file mode 100755
index 0000000000000000000000000000000000000000..fbbd92d4dd34e9467ae1376917e0026287c1722c
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint16Array/undefined-newtarget.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4.1
+description: >
+  Throws a TypeError if NewTarget is undefined.
+info: >
+  TypedArray( ... argumentsList)
+
+  1. If NewTarget is undefined, throw a TypeError exception.
+---*/
+
+assert.throws(TypeError, function() {
+  Uint16Array();
+}, "Uint16Array()");
+
+assert.throws(TypeError, function() {
+  Uint16Array(0);
+}, "Uint16Array(0)");
+
+assert.throws(TypeError, function() {
+  Uint16Array(new Uint16Array(1));
+}, "Uint16Array(uint16Array)");
+
+assert.throws(TypeError, function() {
+  Uint16Array([]);
+}, "Uint16Array(array)");
+
+assert.throws(TypeError, function() {
+  Uint16Array(new ArrayBuffer(8));
+}, "Uint16Array(arrayBuffer)");
diff --git a/test/built-ins/TypedArrays/Uint32Array/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Uint32Array/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..02ecbfe29acdbc6b6618189ce4e23cdb6fd7c77d
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint32Array/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.1
+description: >
+  The initial value of Uint32Array.BYTES_PER_ELEMENT is 4.
+info: >
+  The value of TypedArray.BYTES_PER_ELEMENT is the Number value of the
+  Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint32Array.BYTES_PER_ELEMENT, 4);
+
+verifyNotEnumerable(Uint32Array, "BYTES_PER_ELEMENT");
+verifyNotWritable(Uint32Array, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Uint32Array, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Uint32Array/constructor.js b/test/built-ins/TypedArrays/Uint32Array/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..9b4c82d7098f3b575d974e139500518521d186bd
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint32Array/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4
+description: >
+  Uint32Array is a constructor function.
+---*/
+
+assert.sameValue(typeof Uint32Array, 'function', 'typeof Uint32Array is "function"');
diff --git a/test/built-ins/TypedArrays/Uint32Array/length.js b/test/built-ins/TypedArrays/Uint32Array/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..56db251b372cff19cb3eb44b745851e9f45fe9d2
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint32Array/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Uint32Array.length is 3.
+info: >
+  Besides a length property (whose value 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, including optional
+    parameters. However, rest parameters 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]
+---*/
+
+assert.sameValue(Uint32Array.length, 3);
+
+verifyNotEnumerable(Uint32Array, "length");
+verifyNotWritable(Uint32Array, "length");
+verifyConfigurable(Uint32Array, "length");
diff --git a/test/built-ins/TypedArrays/Uint32Array/name.js b/test/built-ins/TypedArrays/Uint32Array/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..5d3d0ae63e2328ae9b2d5afda77f939effc010b8
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint32Array/name.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Uint32Array.name is "Uint32Array".
+info: >
+  Each TypedArray constructor has a name property whose value is the
+  String value of the constructor name specified for it in Table 49.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint32Array.name, "Uint32Array");
+
+verifyNotEnumerable(Uint32Array, "name");
+verifyNotWritable(Uint32Array, "name");
+verifyConfigurable(Uint32Array, "name");
diff --git a/test/built-ins/TypedArrays/Uint32Array/proto.js b/test/built-ins/TypedArrays/Uint32Array/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..e62f2d711902060d4970e1dfe555b6fc50670ad3
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint32Array/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  The prototype of Uint32Array is %TypedArray%.
+info: >
+  The value of the [[Prototype]] internal slot of each TypedArray constructor is the %TypedArray% intrinsic object (22.2.1).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Uint32Array), TypedArray);
diff --git a/test/built-ins/TypedArrays/Uint32Array/prototype.js b/test/built-ins/TypedArrays/Uint32Array/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..cabdeffb0a2299e0d206c0fc1621e9c2679698d4
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint32Array/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.2
+description: >
+  The initial value of Uint32Array.prototype is the Uint32Array prototype object.
+info: >
+  The initial value of TypedArray.prototype is the corresponding TypedArray prototype intrinsic object (22.2.6).
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint32Array.prototype, Object.getPrototypeOf(new Uint32Array(0)));
+
+verifyNotEnumerable(Uint32Array, "prototype");
+verifyNotWritable(Uint32Array, "prototype");
+verifyNotConfigurable(Uint32Array, "prototype");
diff --git a/test/built-ins/TypedArrays/Uint32Array/prototype/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Uint32Array/prototype/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..8039eb14c2c78b366c33e768569e688dc419c2d1
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint32Array/prototype/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.1
+description: >
+  The initial value of Uint32Array.prototype.BYTES_PER_ELEMENT is 4.
+info: >
+  The value of TypedArray.prototype.BYTES_PER_ELEMENT is the Number value
+  of the Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint32Array.prototype.BYTES_PER_ELEMENT, 4);
+
+verifyNotEnumerable(Uint32Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotWritable(Uint32Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Uint32Array.prototype, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Uint32Array/prototype/constructor.js b/test/built-ins/TypedArrays/Uint32Array/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..509a06737e7b15a466d019ef61a94216697b0e96
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint32Array/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.2
+description: >
+  The initial value of Uint32Array.prototype.constructor is the Uint32Array object.
+info: >
+  The initial value of Uint32Array.prototype.constructor is the intrinsic
+  object %Uint32Array%.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint32Array.prototype.constructor, Uint32Array);
+
+verifyNotEnumerable(Uint32Array.prototype, "constructor");
+verifyWritable(Uint32Array.prototype, "constructor");
+verifyConfigurable(Uint32Array.prototype, "constructor");
diff --git a/test/built-ins/TypedArrays/Uint32Array/prototype/not-typedarray-object.js b/test/built-ins/TypedArrays/Uint32Array/prototype/not-typedarray-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..a6720280b0c48376c75d76b7f4c17c2edc42c6a6
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint32Array/prototype/not-typedarray-object.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  Uint32Array.prototype is not a TypedArray instance object.
+info: >
+  A TypedArray prototype object is an ordinary object. It does not have
+  a [[ViewedArrayBuffer]] or any other of the internal slots that are
+  specific to TypedArray instance objects.
+---*/
+
+assert.throws(TypeError, function() {
+  Uint32Array.prototype.buffer;
+});
diff --git a/test/built-ins/TypedArrays/Uint32Array/prototype/proto.js b/test/built-ins/TypedArrays/Uint32Array/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..92c68297f05a0f5748c63ccc5481eeb82af110c9
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint32Array/prototype/proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  The prototype of Uint32Array.prototype is %TypedArrayPrototype%.
+info: >
+  The value of the [[Prototype]] internal slot of a TypedArray prototype
+  object is the intrinsic object %TypedArrayPrototype% (22.2.3).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Uint32Array.prototype), TypedArray.prototype);
diff --git a/test/built-ins/TypedArrays/Uint32Array/undefined-newtarget.js b/test/built-ins/TypedArrays/Uint32Array/undefined-newtarget.js
new file mode 100755
index 0000000000000000000000000000000000000000..d74e02736a8ebab12ceb31f15b072f90621009fd
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint32Array/undefined-newtarget.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4.1
+description: >
+  Throws a TypeError if NewTarget is undefined.
+info: >
+  TypedArray( ... argumentsList)
+
+  1. If NewTarget is undefined, throw a TypeError exception.
+---*/
+
+assert.throws(TypeError, function() {
+  Uint32Array();
+}, "Uint32Array()");
+
+assert.throws(TypeError, function() {
+  Uint32Array(0);
+}, "Uint32Array(0)");
+
+assert.throws(TypeError, function() {
+  Uint32Array(new Uint32Array(1));
+}, "Uint32Array(uint32Array)");
+
+assert.throws(TypeError, function() {
+  Uint32Array([]);
+}, "Uint32Array(array)");
+
+assert.throws(TypeError, function() {
+  Uint32Array(new ArrayBuffer(8));
+}, "Uint32Array(arrayBuffer)");
diff --git a/test/built-ins/TypedArrays/Uint8Array/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Uint8Array/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..1a7185d46a89832613340dcf8de1b5e265a9f879
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8Array/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.1
+description: >
+  The initial value of Uint8Array.BYTES_PER_ELEMENT is 1.
+info: >
+  The value of TypedArray.BYTES_PER_ELEMENT is the Number value of the
+  Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint8Array.BYTES_PER_ELEMENT, 1);
+
+verifyNotEnumerable(Uint8Array, "BYTES_PER_ELEMENT");
+verifyNotWritable(Uint8Array, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Uint8Array, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Uint8Array/constructor.js b/test/built-ins/TypedArrays/Uint8Array/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..a54b74aba3a0d39788e17a7b212c6bbec74d559e
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8Array/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4
+description: >
+  Uint8Array is a constructor function.
+---*/
+
+assert.sameValue(typeof Uint8Array, 'function', 'typeof Uint8Array is "function"');
diff --git a/test/built-ins/TypedArrays/Uint8Array/length.js b/test/built-ins/TypedArrays/Uint8Array/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..78ef6305d5d1f5a607e9a1ed762d25b59d9f836e
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8Array/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Uint8Array.length is 3.
+info: >
+  Besides a length property (whose value 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, including optional
+    parameters. However, rest parameters 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]
+---*/
+
+assert.sameValue(Uint8Array.length, 3);
+
+verifyNotEnumerable(Uint8Array, "length");
+verifyNotWritable(Uint8Array, "length");
+verifyConfigurable(Uint8Array, "length");
diff --git a/test/built-ins/TypedArrays/Uint8Array/name.js b/test/built-ins/TypedArrays/Uint8Array/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..f1e3f03a8c4ba6769003241e05621cd69703da40
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8Array/name.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Uint8Array.name is "Uint8Array".
+info: >
+  Each TypedArray constructor has a name property whose value is the
+  String value of the constructor name specified for it in Table 49.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint8Array.name, "Uint8Array");
+
+verifyNotEnumerable(Uint8Array, "name");
+verifyNotWritable(Uint8Array, "name");
+verifyConfigurable(Uint8Array, "name");
diff --git a/test/built-ins/TypedArrays/Uint8Array/proto.js b/test/built-ins/TypedArrays/Uint8Array/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..49698bd0ae116655f7443d1821fce5860cc5f440
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8Array/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  The prototype of Uint8Array is %TypedArray%.
+info: >
+  The value of the [[Prototype]] internal slot of each TypedArray constructor is the %TypedArray% intrinsic object (22.2.1).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Uint8Array), TypedArray);
diff --git a/test/built-ins/TypedArrays/Uint8Array/prototype.js b/test/built-ins/TypedArrays/Uint8Array/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..99fdf36a205aa1785c63fcc4efaffb11a874144c
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8Array/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.2
+description: >
+  The initial value of Uint8Array.prototype is the Uint8Array prototype object.
+info: >
+  The initial value of TypedArray.prototype is the corresponding TypedArray prototype intrinsic object (22.2.6).
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint8Array.prototype, Object.getPrototypeOf(new Uint8Array(0)));
+
+verifyNotEnumerable(Uint8Array, "prototype");
+verifyNotWritable(Uint8Array, "prototype");
+verifyNotConfigurable(Uint8Array, "prototype");
diff --git a/test/built-ins/TypedArrays/Uint8Array/prototype/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Uint8Array/prototype/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..74058dde320529b0937caddc1d3cd22f61e8315f
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8Array/prototype/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.1
+description: >
+  The initial value of Uint8Array.prototype.BYTES_PER_ELEMENT is 1.
+info: >
+  The value of TypedArray.prototype.BYTES_PER_ELEMENT is the Number value
+  of the Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint8Array.prototype.BYTES_PER_ELEMENT, 1);
+
+verifyNotEnumerable(Uint8Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotWritable(Uint8Array.prototype, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Uint8Array.prototype, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Uint8Array/prototype/constructor.js b/test/built-ins/TypedArrays/Uint8Array/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..bd90f145b266dace6fdd0056fa47eb6adde1301b
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8Array/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.2
+description: >
+  The initial value of Uint8Array.prototype.constructor is the Uint8Array object.
+info: >
+  The initial value of Uint8Array.prototype.constructor is the intrinsic
+  object %Uint8Array%.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint8Array.prototype.constructor, Uint8Array);
+
+verifyNotEnumerable(Uint8Array.prototype, "constructor");
+verifyWritable(Uint8Array.prototype, "constructor");
+verifyConfigurable(Uint8Array.prototype, "constructor");
diff --git a/test/built-ins/TypedArrays/Uint8Array/prototype/not-typedarray-object.js b/test/built-ins/TypedArrays/Uint8Array/prototype/not-typedarray-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..55b25be853d5fa4d47ac55089729f3ee17b47c58
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8Array/prototype/not-typedarray-object.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  Uint8Array.prototype is not a TypedArray instance object.
+info: >
+  A TypedArray prototype object is an ordinary object. It does not have
+  a [[ViewedArrayBuffer]] or any other of the internal slots that are
+  specific to TypedArray instance objects.
+---*/
+
+assert.throws(TypeError, function() {
+  Uint8Array.prototype.buffer;
+});
diff --git a/test/built-ins/TypedArrays/Uint8Array/prototype/proto.js b/test/built-ins/TypedArrays/Uint8Array/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..c214a7cf59b9a9e23b549d5b889ec1d014b242b9
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8Array/prototype/proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  The prototype of Uint8Array.prototype is %TypedArrayPrototype%.
+info: >
+  The value of the [[Prototype]] internal slot of a TypedArray prototype
+  object is the intrinsic object %TypedArrayPrototype% (22.2.3).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Uint8Array.prototype), TypedArray.prototype);
diff --git a/test/built-ins/TypedArrays/Uint8Array/undefined-newtarget.js b/test/built-ins/TypedArrays/Uint8Array/undefined-newtarget.js
new file mode 100755
index 0000000000000000000000000000000000000000..d592176d6fa1cbbc58bc839bd08bf16a402ce90a
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8Array/undefined-newtarget.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4.1
+description: >
+  Throws a TypeError if NewTarget is undefined.
+info: >
+  TypedArray( ... argumentsList)
+
+  1. If NewTarget is undefined, throw a TypeError exception.
+---*/
+
+assert.throws(TypeError, function() {
+  Uint8Array();
+}, "Uint8Array()");
+
+assert.throws(TypeError, function() {
+  Uint8Array(0);
+}, "Uint8Array(0)");
+
+assert.throws(TypeError, function() {
+  Uint8Array(new Uint8Array(1));
+}, "Uint8Array(uint8Array)");
+
+assert.throws(TypeError, function() {
+  Uint8Array([]);
+}, "Uint8Array(array)");
+
+assert.throws(TypeError, function() {
+  Uint8Array(new ArrayBuffer(8));
+}, "Uint8Array(arrayBuffer)");
diff --git a/test/built-ins/TypedArrays/Uint8ClampedArray/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Uint8ClampedArray/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..49998f40acf4e83024596c4b331d725895850fa4
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8ClampedArray/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.1
+description: >
+  The initial value of Uint8ClampedArray.BYTES_PER_ELEMENT is 1.
+info: >
+  The value of TypedArray.BYTES_PER_ELEMENT is the Number value of the
+  Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint8ClampedArray.BYTES_PER_ELEMENT, 1);
+
+verifyNotEnumerable(Uint8ClampedArray, "BYTES_PER_ELEMENT");
+verifyNotWritable(Uint8ClampedArray, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Uint8ClampedArray, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Uint8ClampedArray/constructor.js b/test/built-ins/TypedArrays/Uint8ClampedArray/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..82c630381f8dc6d2dc2512af3709ef137591ec8b
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8ClampedArray/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4
+description: >
+  Uint8ClampedArray is a constructor function.
+---*/
+
+assert.sameValue(typeof Uint8ClampedArray, 'function', 'typeof Uint8ClampedArray is "function"');
diff --git a/test/built-ins/TypedArrays/Uint8ClampedArray/length.js b/test/built-ins/TypedArrays/Uint8ClampedArray/length.js
new file mode 100755
index 0000000000000000000000000000000000000000..a08ca73700fa47bef9fbde831ecd462fb9bb0bbb
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8ClampedArray/length.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Uint8ClampedArray.length is 3.
+info: >
+  Besides a length property (whose value 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, including optional
+    parameters. However, rest parameters 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]
+---*/
+
+assert.sameValue(Uint8ClampedArray.length, 3);
+
+verifyNotEnumerable(Uint8ClampedArray, "length");
+verifyNotWritable(Uint8ClampedArray, "length");
+verifyConfigurable(Uint8ClampedArray, "length");
diff --git a/test/built-ins/TypedArrays/Uint8ClampedArray/name.js b/test/built-ins/TypedArrays/Uint8ClampedArray/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a3105a2b1e60da4f32c7f118d8c23092df03e9a4
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8ClampedArray/name.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  Uint8ClampedArray.name is "Uint8ClampedArray".
+info: >
+  Each TypedArray constructor has a name property whose value is the
+  String value of the constructor name specified for it in Table 49.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint8ClampedArray.name, "Uint8ClampedArray");
+
+verifyNotEnumerable(Uint8ClampedArray, "name");
+verifyNotWritable(Uint8ClampedArray, "name");
+verifyConfigurable(Uint8ClampedArray, "name");
diff --git a/test/built-ins/TypedArrays/Uint8ClampedArray/proto.js b/test/built-ins/TypedArrays/Uint8ClampedArray/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..c94c0c8deb687ccdd734fc7b9fc9347be0612acd
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8ClampedArray/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5
+description: >
+  The prototype of Uint8ClampedArray is %TypedArray%.
+info: >
+  The value of the [[Prototype]] internal slot of each TypedArray constructor is the %TypedArray% intrinsic object (22.2.1).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Uint8ClampedArray), TypedArray);
diff --git a/test/built-ins/TypedArrays/Uint8ClampedArray/prototype.js b/test/built-ins/TypedArrays/Uint8ClampedArray/prototype.js
new file mode 100755
index 0000000000000000000000000000000000000000..2a3a7e1117517a82b80737bb4eb92db7a877c550
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8ClampedArray/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.5.2
+description: >
+  The initial value of Uint8ClampedArray.prototype is the Uint8ClampedArray prototype object.
+info: >
+  The initial value of TypedArray.prototype is the corresponding TypedArray prototype intrinsic object (22.2.6).
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint8ClampedArray.prototype, Object.getPrototypeOf(new Uint8ClampedArray(0)));
+
+verifyNotEnumerable(Uint8ClampedArray, "prototype");
+verifyNotWritable(Uint8ClampedArray, "prototype");
+verifyNotConfigurable(Uint8ClampedArray, "prototype");
diff --git a/test/built-ins/TypedArrays/Uint8ClampedArray/prototype/BYTES_PER_ELEMENT.js b/test/built-ins/TypedArrays/Uint8ClampedArray/prototype/BYTES_PER_ELEMENT.js
new file mode 100755
index 0000000000000000000000000000000000000000..554aae55a4da62e4881576b94d747ff4013f6f6a
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8ClampedArray/prototype/BYTES_PER_ELEMENT.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.1
+description: >
+  The initial value of Uint8ClampedArray.prototype.BYTES_PER_ELEMENT is 1.
+info: >
+  The value of TypedArray.prototype.BYTES_PER_ELEMENT is the Number value
+  of the Element Size value specified in Table 49 for TypedArray.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint8ClampedArray.prototype.BYTES_PER_ELEMENT, 1);
+
+verifyNotEnumerable(Uint8ClampedArray.prototype, "BYTES_PER_ELEMENT");
+verifyNotWritable(Uint8ClampedArray.prototype, "BYTES_PER_ELEMENT");
+verifyNotConfigurable(Uint8ClampedArray.prototype, "BYTES_PER_ELEMENT");
diff --git a/test/built-ins/TypedArrays/Uint8ClampedArray/prototype/constructor.js b/test/built-ins/TypedArrays/Uint8ClampedArray/prototype/constructor.js
new file mode 100755
index 0000000000000000000000000000000000000000..8d153d33df57dc0150189c1a7cec0eb44e438160
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8ClampedArray/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6.2
+description: >
+  The initial value of Uint8ClampedArray.prototype.constructor is the Uint8ClampedArray object.
+info: >
+  The initial value of Uint8ClampedArray.prototype.constructor is the intrinsic
+  object %Uint8ClampedArray%.
+
+  17 ECMAScript Standard Built-in Objects:
+    Every other data property described in clauses 18 through 26 and in Annex B.2 has
+    the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+    unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(Uint8ClampedArray.prototype.constructor, Uint8ClampedArray);
+
+verifyNotEnumerable(Uint8ClampedArray.prototype, "constructor");
+verifyWritable(Uint8ClampedArray.prototype, "constructor");
+verifyConfigurable(Uint8ClampedArray.prototype, "constructor");
diff --git a/test/built-ins/TypedArrays/Uint8ClampedArray/prototype/not-typedarray-object.js b/test/built-ins/TypedArrays/Uint8ClampedArray/prototype/not-typedarray-object.js
new file mode 100755
index 0000000000000000000000000000000000000000..71a29c0d6402263ea6d836e849fa893132693408
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8ClampedArray/prototype/not-typedarray-object.js
@@ -0,0 +1,16 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  Uint8ClampedArray.prototype is not a TypedArray instance object.
+info: >
+  A TypedArray prototype object is an ordinary object. It does not have
+  a [[ViewedArrayBuffer]] or any other of the internal slots that are
+  specific to TypedArray instance objects.
+---*/
+
+assert.throws(TypeError, function() {
+  Uint8ClampedArray.prototype.buffer;
+});
diff --git a/test/built-ins/TypedArrays/Uint8ClampedArray/prototype/proto.js b/test/built-ins/TypedArrays/Uint8ClampedArray/prototype/proto.js
new file mode 100755
index 0000000000000000000000000000000000000000..72a5c008e0c31ab212efc05dcf53b050fd581de4
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8ClampedArray/prototype/proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.6
+description: >
+  The prototype of Uint8ClampedArray.prototype is %TypedArrayPrototype%.
+info: >
+  The value of the [[Prototype]] internal slot of a TypedArray prototype
+  object is the intrinsic object %TypedArrayPrototype% (22.2.3).
+includes: [testTypedArray.js]
+---*/
+
+assert.sameValue(Object.getPrototypeOf(Uint8ClampedArray.prototype), TypedArray.prototype);
diff --git a/test/built-ins/TypedArrays/Uint8ClampedArray/undefined-newtarget.js b/test/built-ins/TypedArrays/Uint8ClampedArray/undefined-newtarget.js
new file mode 100755
index 0000000000000000000000000000000000000000..63c1dbd767ac29e1aba02ede49808ca6fe1a2f6d
--- /dev/null
+++ b/test/built-ins/TypedArrays/Uint8ClampedArray/undefined-newtarget.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 22.2.4.1
+description: >
+  Throws a TypeError if NewTarget is undefined.
+info: >
+  TypedArray( ... argumentsList)
+
+  1. If NewTarget is undefined, throw a TypeError exception.
+---*/
+
+assert.throws(TypeError, function() {
+  Uint8ClampedArray();
+}, "Uint8ClampedArray()");
+
+assert.throws(TypeError, function() {
+  Uint8ClampedArray(0);
+}, "Uint8ClampedArray(0)");
+
+assert.throws(TypeError, function() {
+  Uint8ClampedArray(new Uint8ClampedArray(1));
+}, "Uint8ClampedArray(uint8clampedArray)");
+
+assert.throws(TypeError, function() {
+  Uint8ClampedArray([]);
+}, "Uint8ClampedArray(array)");
+
+assert.throws(TypeError, function() {
+  Uint8ClampedArray(new ArrayBuffer(8));
+}, "Uint8ClampedArray(arrayBuffer)");
diff --git a/test/built-ins/decodeURI/name.js b/test/built-ins/decodeURI/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..75a6412b3384d437cb0f57e180ec41221598b90c
--- /dev/null
+++ b/test/built-ins/decodeURI/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 18.2.6.2
+description: >
+  decodeURI.name is "decodeURI".
+info: >
+  decodeURI (encodedURI)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(decodeURI.name, "decodeURI");
+
+verifyNotEnumerable(decodeURI, "name");
+verifyNotWritable(decodeURI, "name");
+verifyConfigurable(decodeURI, "name");
diff --git a/test/built-ins/decodeURIComponent/name.js b/test/built-ins/decodeURIComponent/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..a3d8794d442c59df8457b13b424a435379aed88a
--- /dev/null
+++ b/test/built-ins/decodeURIComponent/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 18.2.6.3
+description: >
+  decodeURIComponent.name is "decodeURIComponent".
+info: >
+  decodeURIComponent (encodedURIComponent)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(decodeURIComponent.name, "decodeURIComponent");
+
+verifyNotEnumerable(decodeURIComponent, "name");
+verifyNotWritable(decodeURIComponent, "name");
+verifyConfigurable(decodeURIComponent, "name");
diff --git a/test/built-ins/encodeURI/name.js b/test/built-ins/encodeURI/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..dd8ddca6fae1ab0b7470f6a252a5fd936e7a1c53
--- /dev/null
+++ b/test/built-ins/encodeURI/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 18.2.6.4
+description: >
+  encodeURI.name is "encodeURI".
+info: >
+  encodeURI (uri)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(encodeURI.name, "encodeURI");
+
+verifyNotEnumerable(encodeURI, "name");
+verifyNotWritable(encodeURI, "name");
+verifyConfigurable(encodeURI, "name");
diff --git a/test/built-ins/encodeURIComponent/name.js b/test/built-ins/encodeURIComponent/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..3ba22ac73eac4af334bb4e759d3c01b468b8cf92
--- /dev/null
+++ b/test/built-ins/encodeURIComponent/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 18.2.6.5
+description: >
+  encodeURIComponent.name is "encodeURIComponent".
+info: >
+  encodeURIComponent (uriComponent)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(encodeURIComponent.name, "encodeURIComponent");
+
+verifyNotEnumerable(encodeURIComponent, "name");
+verifyNotWritable(encodeURIComponent, "name");
+verifyConfigurable(encodeURIComponent, "name");
diff --git a/test/built-ins/eval/name.js b/test/built-ins/eval/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..2b844d22a69a284a70f7df1425b6a4c1b41e71cd
--- /dev/null
+++ b/test/built-ins/eval/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 18.2.1
+description: >
+  eval.name is "eval".
+info: >
+  eval (x)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(eval.name, "eval");
+
+verifyNotEnumerable(eval, "name");
+verifyNotWritable(eval, "name");
+verifyConfigurable(eval, "name");
diff --git a/test/built-ins/isFinite/name.js b/test/built-ins/isFinite/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..d9775c23e419645d42bf0a8771f65bbaed426d24
--- /dev/null
+++ b/test/built-ins/isFinite/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 18.2.2
+description: >
+  isFinite.name is "isFinite".
+info: >
+  isFinite (number)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(isFinite.name, "isFinite");
+
+verifyNotEnumerable(isFinite, "name");
+verifyNotWritable(isFinite, "name");
+verifyConfigurable(isFinite, "name");
diff --git a/test/built-ins/isNaN/name.js b/test/built-ins/isNaN/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..f4e7e50b6d7139b03a3130714f06e02389b4b7eb
--- /dev/null
+++ b/test/built-ins/isNaN/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 18.2.3
+description: >
+  isNaN.name is "isNaN".
+info: >
+  isNaN (number)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(isNaN.name, "isNaN");
+
+verifyNotEnumerable(isNaN, "name");
+verifyNotWritable(isNaN, "name");
+verifyConfigurable(isNaN, "name");
diff --git a/test/built-ins/parseFloat/name.js b/test/built-ins/parseFloat/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..fc2f356ec2a616faad0817244904e54afcde2d75
--- /dev/null
+++ b/test/built-ins/parseFloat/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 18.2.4
+description: >
+  parseFloat.name is "parseFloat".
+info: >
+  parseFloat (string)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(parseFloat.name, "parseFloat");
+
+verifyNotEnumerable(parseFloat, "name");
+verifyNotWritable(parseFloat, "name");
+verifyConfigurable(parseFloat, "name");
diff --git a/test/built-ins/parseInt/name.js b/test/built-ins/parseInt/name.js
new file mode 100755
index 0000000000000000000000000000000000000000..795302b3bf6b85e268441002db3d08b7696e0df4
--- /dev/null
+++ b/test/built-ins/parseInt/name.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 18.2.5
+description: >
+  parseInt.name is "parseInt".
+info: >
+  parseInt (string , radix)
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, that is not
+    identified as an anonymous function has a name property whose value
+    is a String.
+
+    Unless otherwise specified, the name property of a built-in Function
+    object, if it exists, has the attributes { [[Writable]]: false,
+    [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(parseInt.name, "parseInt");
+
+verifyNotEnumerable(parseInt, "name");
+verifyNotWritable(parseInt, "name");
+verifyConfigurable(parseInt, "name");