diff --git a/test/built-ins/Math/acosh/acosh-length.js b/test/built-ins/Math/acosh/acosh-length.js
deleted file mode 100644
index 80cfb9dc4c456725529dcf9f6aba8fecf55cc15e..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/acosh/acosh-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.acosh
-es6id: 20.2.2.3
----*/
-
-assert.sameValue(Math.acosh.length, 1);
-
diff --git a/test/built-ins/Math/acosh/length.js b/test/built-ins/Math/acosh/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..6f7453974ddd0dfb3218d4287679afbf920a119a
--- /dev/null
+++ b/test/built-ins/Math/acosh/length.js
@@ -0,0 +1,25 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.3
+description: length property of Math.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.length, 1);
+
+verifyNotEnumerable(Math.acosh, "length");
+verifyNotWritable(Math.acosh, "length");
+verifyConfigurable(Math.acosh, "length");
diff --git a/test/built-ins/Math/asinh/asinh-length.js b/test/built-ins/Math/asinh/asinh-length.js
deleted file mode 100644
index 6f7d623597c90ab039d7f6f98ea14ca830e3ad1b..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/asinh/asinh-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.asinh
-es6id: 20.2.2.5
----*/
-
-assert.sameValue(Math.asinh.length, 1);
-
diff --git a/test/built-ins/Math/asinh/length.js b/test/built-ins/Math/asinh/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..643d74d34c0d1a5d411bdedd5b767b6f13214273
--- /dev/null
+++ b/test/built-ins/Math/asinh/length.js
@@ -0,0 +1,28 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+description: length property of Math.asinh
+es6id: 20.2.2.5
+info: >
+  Math.asinh ( 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.asinh.length, 1);
+
+verifyNotEnumerable(Math.asinh, "length");
+verifyNotWritable(Math.asinh, "length");
+verifyConfigurable(Math.asinh, "length");
diff --git a/test/built-ins/Math/atanh/atanh-length.js b/test/built-ins/Math/atanh/atanh-length.js
deleted file mode 100644
index d34c85aee47b4910d653d36bc9d49de023d61d87..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/atanh/atanh-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.atanh
-es6id: 20.2.2.7
----*/
-
-assert.sameValue(Math.atanh.length, 1);
-
diff --git a/test/built-ins/Math/atanh/length.js b/test/built-ins/Math/atanh/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..8b88389a53594c5a93fbe08c6998c4ab72fe38db
--- /dev/null
+++ b/test/built-ins/Math/atanh/length.js
@@ -0,0 +1,28 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+description: length property of Math.atanh
+es6id: 20.2.2.7
+info: >
+  Math.atanh ( 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.atanh.length, 1);
+
+verifyNotEnumerable(Math.atanh, "length");
+verifyNotWritable(Math.atanh, "length");
+verifyConfigurable(Math.atanh, "length");
diff --git a/test/built-ins/Math/cbrt/cbrt-length.js b/test/built-ins/Math/cbrt/cbrt-length.js
deleted file mode 100644
index fe2d7a1c35cfa855ef538e644e4676a489a48629..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/cbrt/cbrt-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.cbrt
-es6id: 20.2.2.9
----*/
-
-assert.sameValue(Math.cbrt.length, 1);
-
diff --git a/test/built-ins/Math/cbrt/length.js b/test/built-ins/Math/cbrt/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..7f4f6576a16b9c6a2cc4e41743c49f23aeaa8639
--- /dev/null
+++ b/test/built-ins/Math/cbrt/length.js
@@ -0,0 +1,28 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+description: length property of Math.cbrt
+es6id: 20.2.2.9
+info: >
+  Math.cbrt ( 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.cbrt.length, 1);
+
+verifyNotEnumerable(Math.cbrt, "length");
+verifyNotWritable(Math.cbrt, "length");
+verifyConfigurable(Math.cbrt, "length");
diff --git a/test/built-ins/Math/cosh/cosh-length.js b/test/built-ins/Math/cosh/cosh-length.js
deleted file mode 100644
index 59e379d7bfeecc3b0ef9bce24fba4ae77ed7ff56..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/cosh/cosh-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.cosh
-es6id: 20.2.2.13
----*/
-
-assert.sameValue(Math.cosh.length, 1);
-
diff --git a/test/built-ins/Math/cosh/length.js b/test/built-ins/Math/cosh/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..de8dd441848bc29f6562916faf5bb52a99c5810a
--- /dev/null
+++ b/test/built-ins/Math/cosh/length.js
@@ -0,0 +1,25 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.13
+description: Length property of Math.cosh is 1
+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.length, 1);
+
+verifyNotEnumerable(Math.cosh, "length");
+verifyNotWritable(Math.cosh, "length");
+verifyConfigurable(Math.cosh, "length");
diff --git a/test/built-ins/Math/expm1/expm1-length.js b/test/built-ins/Math/expm1/expm1-length.js
deleted file mode 100644
index 4e01c6688a04f12182903590cd6b5f0c022608e0..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/expm1/expm1-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.expm1
-es6id: 20.2.2.15
----*/
-
-assert.sameValue(Math.expm1.length, 1);
-
diff --git a/test/built-ins/Math/expm1/length.js b/test/built-ins/Math/expm1/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..1d26ff34f14ab23669712b9cb1c57ccb61e7babc
--- /dev/null
+++ b/test/built-ins/Math/expm1/length.js
@@ -0,0 +1,28 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+description: length property of Math.expm1
+es6id: 20.2.2.15
+info: >
+  Math.expm1 ( 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.expm1.length, 1);
+
+verifyNotEnumerable(Math.expm1, "length");
+verifyNotWritable(Math.expm1, "length");
+verifyConfigurable(Math.expm1, "length");
diff --git a/test/built-ins/Math/hypot/Math.hypot_lengthProp.js b/test/built-ins/Math/hypot/Math.hypot_lengthProp.js
deleted file mode 100644
index 1bafa47549f970ce71866dcbda8a561d8ada4ca2..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/hypot/Math.hypot_lengthProp.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright (c) 2014 Ryan Lewis. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-es6id: 20.2.2.18
-author: Ryan Lewis
-description: Math.hypot.length should return 2.
----*/
-
-assert.sameValue(Math.hypot.length, 2, 'Math.hypot.length');
diff --git a/test/built-ins/Math/hypot/length.js b/test/built-ins/Math/hypot/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..8810cfc88ddeb54efa7f18acad8e5f3dc6c15172
--- /dev/null
+++ b/test/built-ins/Math/hypot/length.js
@@ -0,0 +1,29 @@
+// Copyright (c) 2014 Ryan Lewis. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.18
+author: Ryan Lewis
+description: Math.hypot.length should return 2.
+info: >
+  Math.hypot ( value1, value2, ...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]
+---*/
+
+assert.sameValue(Math.hypot.length, 2);
+
+verifyNotEnumerable(Math.hypot, "length");
+verifyNotWritable(Math.hypot, "length");
+verifyConfigurable(Math.hypot, "length");
diff --git a/test/built-ins/Math/imul/imul-length.js b/test/built-ins/Math/imul/imul-length.js
deleted file mode 100644
index ae299ca389cef38e1db7b8e71b5fbf7d16e8c314..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/imul/imul-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.imul
-es6id: 20.2.2.19
----*/
-
-assert.sameValue(Math.imul.length, 2);
-
diff --git a/test/built-ins/Math/imul/length.js b/test/built-ins/Math/imul/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..ff64f3104f964ce4c85a5e045ea61feef4385682
--- /dev/null
+++ b/test/built-ins/Math/imul/length.js
@@ -0,0 +1,28 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.19
+description: length property of Math.imul
+info: >
+  Math.imul ( 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.imul.length, 2);
+
+verifyNotEnumerable(Math.imul, "length");
+verifyNotWritable(Math.imul, "length");
+verifyConfigurable(Math.imul, "length");
diff --git a/test/built-ins/Math/log10/Log10-length.js b/test/built-ins/Math/log10/Log10-length.js
deleted file mode 100644
index edab19b71213a25bf06cc2ac08d6b3ab8feb1f3b..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/log10/Log10-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.log10
-es6id: 20.2.2.20
----*/
-
-assert.sameValue(Math.log10.length, 1);
-
diff --git a/test/built-ins/Math/log10/length.js b/test/built-ins/Math/log10/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..02c4e28857c707539ec00a8bd37f72f10897f13c
--- /dev/null
+++ b/test/built-ins/Math/log10/length.js
@@ -0,0 +1,28 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.20
+description: length property of Math.log10
+info: >
+  Math.log10 ( 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.log10.length, 1);
+
+verifyNotEnumerable(Math.log10, "length");
+verifyNotWritable(Math.log10, "length");
+verifyConfigurable(Math.log10, "length");
diff --git a/test/built-ins/Math/log1p/Log1p-length.js b/test/built-ins/Math/log1p/Log1p-length.js
deleted file mode 100644
index a0c254f060ef6938dbe842d30f3275f2d4f887c1..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/log1p/Log1p-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.log1p
-es6id: 20.2.2.21
----*/
-
-assert.sameValue(Math.log1p.length, 1);
-
diff --git a/test/built-ins/Math/log1p/length.js b/test/built-ins/Math/log1p/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..3d38d50662032ef64350f0011ac382b61a7ad861
--- /dev/null
+++ b/test/built-ins/Math/log1p/length.js
@@ -0,0 +1,28 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.21
+description: length property of Math.log1p
+info: >
+  Math.log1p ( 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.log1p.length, 1);
+
+verifyNotEnumerable(Math.log1p, "length");
+verifyNotWritable(Math.log1p, "length");
+verifyConfigurable(Math.log1p, "length");
diff --git a/test/built-ins/Math/log2/length.js b/test/built-ins/Math/log2/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..921358c6c516ae3279835762cda8bff246aac2ac
--- /dev/null
+++ b/test/built-ins/Math/log2/length.js
@@ -0,0 +1,28 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+es6id: 20.2.2.23
+description: length property of Math.log2
+info: >
+  Math.log2 ( 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.log2.length, 1);
+
+verifyNotEnumerable(Math.log2, "length");
+verifyNotWritable(Math.log2, "length");
+verifyConfigurable(Math.log2, "length");
diff --git a/test/built-ins/Math/log2/log2-length.js b/test/built-ins/Math/log2/log2-length.js
deleted file mode 100644
index 1e55a41289b2fabf3a3205e9ebedc22589bf1aa7..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/log2/log2-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.log2
-es6id: 20.2.2.23
----*/
-
-assert.sameValue(Math.log2.length, 1);
-
diff --git a/test/built-ins/Math/max/length.js b/test/built-ins/Math/max/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..c8a132e6d084f9933a8e4deb80aaeb6eccad45bd
--- /dev/null
+++ b/test/built-ins/Math/max/length.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-math.max
+description: >
+  "length" property of Math.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.length, 2);
+
+verifyNotEnumerable(Math.max, "length");
+verifyNotWritable(Math.max, "length");
+verifyConfigurable(Math.max, "length");
diff --git a/test/built-ins/Math/min/length.js b/test/built-ins/Math/min/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..bd9261303009a1db68cbc15658974f701a4d0039
--- /dev/null
+++ b/test/built-ins/Math/min/length.js
@@ -0,0 +1,26 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-math.min
+description: >
+  "length" property of Math.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.length, 2);
+
+verifyNotEnumerable(Math.min, "length");
+verifyNotWritable(Math.min, "length");
+verifyConfigurable(Math.min, "length");
diff --git a/test/built-ins/Math/sign/length.js b/test/built-ins/Math/sign/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..cafd6af529bc1b84d6bc1465f704c4abf99bf1b3
--- /dev/null
+++ b/test/built-ins/Math/sign/length.js
@@ -0,0 +1,25 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+description: length property of Math.sign
+es6id: 20.2.2.29
+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.length, 1);
+
+verifyNotEnumerable(Math.sign, "length");
+verifyNotWritable(Math.sign, "length");
+verifyConfigurable(Math.sign, "length");
diff --git a/test/built-ins/Math/sign/sign-length.js b/test/built-ins/Math/sign/sign-length.js
deleted file mode 100644
index 22427b6c70af66f8c23c94d43535cd1ae2df984f..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/sign/sign-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.sign
-es6id: 20.2.2.29
----*/
-
-assert.sameValue(Math.sign.length, 1);
-
diff --git a/test/built-ins/Math/sinh/length.js b/test/built-ins/Math/sinh/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..c178c1b7931dd315de4e158f00dd403197280e3f
--- /dev/null
+++ b/test/built-ins/Math/sinh/length.js
@@ -0,0 +1,25 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+description: length property of Math.sinh
+es6id: 20.2.2.31
+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.length, 1);
+
+verifyNotEnumerable(Math.sinh, "length");
+verifyNotWritable(Math.sinh, "length");
+verifyConfigurable(Math.sinh, "length");
diff --git a/test/built-ins/Math/sinh/sinh-length.js b/test/built-ins/Math/sinh/sinh-length.js
deleted file mode 100644
index d471b4ef60f3ba313321a3beac802a13d72080a1..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/sinh/sinh-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.sinh
-es6id: 20.2.2.31
----*/
-
-assert.sameValue(Math.sinh.length, 1);
-
diff --git a/test/built-ins/Math/tanh/length.js b/test/built-ins/Math/tanh/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..6736d3d2de2a8c522d481944ff68c5f0670b602d
--- /dev/null
+++ b/test/built-ins/Math/tanh/length.js
@@ -0,0 +1,25 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+description: length property of Math.tanh
+es6id: 20.2.2.34
+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.length, 1);
+
+verifyNotEnumerable(Math.tanh, "length");
+verifyNotWritable(Math.tanh, "length");
+verifyConfigurable(Math.tanh, "length");
diff --git a/test/built-ins/Math/tanh/tanh-length.js b/test/built-ins/Math/tanh/tanh-length.js
deleted file mode 100644
index d7000a06dd844d0c89a973a2f039f380550b6441..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/tanh/tanh-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.tanh
-es6id: 20.2.2.34
----*/
-
-assert.sameValue(Math.tanh.length, 1);
-
diff --git a/test/built-ins/Math/trunc/length.js b/test/built-ins/Math/trunc/length.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3d55c0f4d5d0965e60df0938d8bb39ea6b2f1ee
--- /dev/null
+++ b/test/built-ins/Math/trunc/length.js
@@ -0,0 +1,25 @@
+// Copyright 2015 Microsoft Corporation. All rights reserved.
+// This code is governed by the license found in the LICENSE file.
+
+/*---
+description: length property of Math.trunc
+es6id: 20.2.2.35
+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.length, 1);
+
+verifyNotEnumerable(Math.trunc, "length");
+verifyNotWritable(Math.trunc, "length");
+verifyConfigurable(Math.trunc, "length");
diff --git a/test/built-ins/Math/trunc/trunc-length.js b/test/built-ins/Math/trunc/trunc-length.js
deleted file mode 100644
index b4381936f212a1536be6e7e10991fae24055a3b4..0000000000000000000000000000000000000000
--- a/test/built-ins/Math/trunc/trunc-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2015 Microsoft Corporation. All rights reserved.
-// This code is governed by the license found in the LICENSE file.
-
-/*---
-description: Testing length property of Math.trunc
-es6id: 20.2.2.35
----*/
-
-assert.sameValue(Math.trunc.length, 1);
-