diff --git a/harness/testIntl.js b/harness/testIntl.js
index b009a2e9ed32eeb60e599e9fb046e284763587a5..465d4b3b816988929fb01c0e1262a01a9d241720 100644
--- a/harness/testIntl.js
+++ b/harness/testIntl.js
@@ -1147,6 +1147,43 @@ function testValidDateTimeComponentValue(component, value) {
 }
 
 
+/**
+ * @description Tests whether timeZone is a String value representing a
+ * structurally valid and canonicalized time zone name, as defined in
+ * sections 6.4.1 and 6.4.2 of the ECMAScript Internationalization API
+ * Specification.
+ * @param {String} timeZone the string to be tested.
+ * @result {Boolean} whether the test succeeded.
+ */
+
+function isCanonicalizedStructurallyValidTimeZoneName(timeZone) {
+    /**
+     * Regular expression defining IANA Time Zone names.
+     *
+     * Spec: IANA Time Zone Database, Theory file
+     */
+    var fileNameComponent = "(?:[A-Za-z_]|\\.(?!\\.?(?:/|$)))[A-Za-z.\\-_]{0,13}";
+    var fileName = fileNameComponent + "(?:/" + fileNameComponent + ")*";
+    var etcName = "(?:Etc/)?GMT[+-]\\d{1,2}";
+    var systemVName = "SystemV/[A-Z]{3}\\d{1,2}(?:[A-Z]{3})?";
+    var legacyName = etcName + "|" + systemVName + "|CST6CDT|EST5EDT|MST7MDT|PST8PDT|NZ|Canada/East-Saskatchewan";
+    var zoneNamePattern = new RegExp("^(?:" + fileName + "|" + legacyName + ")$");
+
+    if (typeof timeZone !== "string") {
+        return false;
+    }
+    // 6.4.2 CanonicalizeTimeZoneName (timeZone), step 3
+    if (timeZone === "UTC") {
+        return true;
+    }
+    // 6.4.2 CanonicalizeTimeZoneName (timeZone), step 3
+    if (timeZone === "Etc/UTC" || timeZone === "Etc/GMT") {
+        return false;
+    }
+    return zoneNamePattern.test(timeZone);
+}
+
+
 /**
  * Verifies that the actual array matches the expected one in length, elements,
  * and element order.
diff --git a/test/intl402/10.1.1_1.js b/test/intl402/10.1.1_1.js
index d0a608a369cd17775eb5012383782392a6b9224a..42f4fe67b64e831d7840a221c937f852bac43a1b 100644
--- a/test/intl402/10.1.1_1.js
+++ b/test/intl402/10.1.1_1.js
@@ -3,40 +3,27 @@
 
 /*---
 es5id: 10.1.1_1
-description: Tests that an object can't be re-initialized as a Collator.
+description: Tests that the this-value is ignored in Collator.
 author: Norbert Lindenberg
 includes: [testIntl.js]
 ---*/
 
 testWithIntlConstructors(function (Constructor) {
-    var obj, error;
-    
+    var obj, newObj;
+
     // variant 1: use constructor in a "new" expression
     obj = new Constructor();
-    try {
-        Intl.Collator.call(obj);
-    } catch (e) {
-        error = e;
-    }
-    if (error === undefined) {
-        $ERROR("Re-initializing object created with \"new\" as Collator was not rejected.");
-    } else if (error.name !== "TypeError") {
-        $ERROR("Re-initializing object created with \"new\" as Collator was rejected with wrong error " + error.name + ".");
+    newObj = Intl.Collator.call(obj);
+    if (obj === newObj) {
+      $ERROR("Collator object created with \"new\" was not ignored as this-value.");
     }
-    
+
     // variant 2: use constructor as a function
-    obj = Constructor.call({});
-    error = undefined;
-    try {
-        Intl.Collator.call(obj);
-    } catch (e) {
-        error = e;
+    obj = Constructor();
+    newObj = Intl.Collator.call(obj);
+    if (obj === newObj) {
+      $ERROR("Collator object created with constructor as function was not ignored as this-value.");
     }
-    if (error === undefined) {
-        $ERROR("Re-initializing object created with constructor as function as Collator was not rejected.");
-    } else if (error.name !== "TypeError") {
-        $ERROR("Re-initializing object created with constructor as function as Collator was rejected with wrong error " + error.name + ".");
-    }
-    
+
     return true;
 });
diff --git a/test/intl402/10.1.2.1_4.js b/test/intl402/10.1.2.1_4.js
index 9a1769434b129d4aa2eee1e7f70701e6c80f91f5..dc30d0a03e889ce7882fc2f2e6f7c732de876c25 100644
--- a/test/intl402/10.1.2.1_4.js
+++ b/test/intl402/10.1.2.1_4.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 10.1.2.1_4
 description: >
-    Tests that for non-object values passed as this to Collator a
-    wrapper object will be initialized and returned.
+    Tests that non-object values passed as this to Collator are ignored
+    and a normal collator object will be initialized and returned.
 author: Norbert Lindenberg
 ---*/
 
diff --git a/test/intl402/10.1.2_a.js b/test/intl402/10.1.2_a.js
index 285cc7b6d5b3795acfd3ddc516479021b204b755..83bd66b4648c946ddca2067b84c8e95eff940a53 100644
--- a/test/intl402/10.1.2_a.js
+++ b/test/intl402/10.1.2_a.js
@@ -15,15 +15,14 @@ var a = ["A", "C", "E", "B", "D", "F"];
 var referenceCollator = new Intl.Collator(locales);
 var referenceSorted = a.slice().sort(referenceCollator.compare);
 
-function MyCollator(locales, options) {
-    Intl.Collator.call(this, locales, options);
+class MyCollator extends Intl.Collator {
+  constructor(locales, options) {
+    super(locales, options);
     // could initialize MyCollator properties
+  }
+  // could add methods to MyCollator.prototype
 }
 
-MyCollator.prototype = Object.create(Intl.Collator.prototype);
-MyCollator.prototype.constructor = MyCollator;
-// could add methods to MyCollator.prototype
-
 var collator = new MyCollator(locales);
 a.sort(collator.compare);
 testArraysAreSame(referenceSorted, a);
diff --git a/test/intl402/10.1_L15.js b/test/intl402/10.1_L15.js
index 833b7fb1a06218996d1a71ddd8490a6c2e00bb6c..3446d7cfe05e01baa8f1518b8136ade415c19824 100644
--- a/test/intl402/10.1_L15.js
+++ b/test/intl402/10.1_L15.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 10.1_L15
 description: >
-    Tests that Intl.Collator  meets the requirements for built-in
-    objects defined by the introduction of  chapter 15 of the
+    Tests that Intl.Collator meets the requirements for built-in
+    objects defined by the introduction of chapter 17 of the
     ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/10.2.2_L15.js b/test/intl402/10.2.2_L15.js
index 3e1d314f466e369e19fe5d3a7cd678bf9578aec6..c5c41db3ae86ee7ce40a3d1044a3fe06fd6b41b1 100644
--- a/test/intl402/10.2.2_L15.js
+++ b/test/intl402/10.2.2_L15.js
@@ -4,9 +4,9 @@
 /*---
 es5id: 10.2.2_L15
 description: >
-    Tests that Intl.Collator.supportedLocalesOf  meets the
+    Tests that Intl.Collator.supportedLocalesOf meets the
     requirements for built-in objects defined by the introduction of
-    chapter 15 of the ECMAScript Language Specification.
+    chapter 17 of the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
 ---*/
diff --git a/test/intl402/10.3.2_1_a_L15.js b/test/intl402/10.3.2_1_a_L15.js
index 15236a162c0de348ef689a7442157d07bbff37aa..657845eaac9ef37b1626de8bc669bdb48c33d8cd 100644
--- a/test/intl402/10.3.2_1_a_L15.js
+++ b/test/intl402/10.3.2_1_a_L15.js
@@ -5,8 +5,8 @@
 es5id: 10.3.2_1_a_L15
 description: >
     Tests that the function returned by
-    Intl.Collator.prototype.compare  meets the requirements for
-    built-in objects defined by the introduction of  chapter 15 of the
+    Intl.Collator.prototype.compare meets the requirements for
+    built-in objects defined by the introduction of chapter 17 of the
     ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/10.3.2_L15.js b/test/intl402/10.3.2_L15.js
index cc52f61fc0f567c962fb9b2139c4f2148b1920ec..f83d063d28c8a9624ddaeeaa688a332a1e6cf05a 100644
--- a/test/intl402/10.3.2_L15.js
+++ b/test/intl402/10.3.2_L15.js
@@ -4,9 +4,9 @@
 /*---
 es5id: 10.3.2_L15
 description: >
-    Tests that the getter for Intl.Collator.prototype.compare  meets
+    Tests that the getter for Intl.Collator.prototype.compare meets
     the requirements for built-in objects defined by the introduction
-    of  chapter 15 of the ECMAScript Language Specification.
+    of chapter 17 of the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
 ---*/
diff --git a/test/intl402/10.3.3_L15.js b/test/intl402/10.3.3_L15.js
index e6892b183dd9bae80055bb4f943b08138d09794f..59792f058c48c71f45324f267469847c18c08f7e 100644
--- a/test/intl402/10.3.3_L15.js
+++ b/test/intl402/10.3.3_L15.js
@@ -4,9 +4,9 @@
 /*---
 es5id: 10.3.3_L15
 description: >
-    Tests that Intl.Collator.prototype.resolvedOptions  meets the
+    Tests that Intl.Collator.prototype.resolvedOptions meets the
     requirements for built-in objects defined by the introduction of
-    chapter 15 of the ECMAScript Language Specification.
+    chapter 17 of the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
 ---*/
diff --git a/test/intl402/10.3_L15.js b/test/intl402/10.3_L15.js
index f7f3e17b084f9e9a067decb95983e56993966f93..e2d458b1564a15b219216f8ef427b6a797eba55e 100644
--- a/test/intl402/10.3_L15.js
+++ b/test/intl402/10.3_L15.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 10.3_L15
 description: >
-    Tests that Intl.Collator.prototype  meets the requirements for
-    built-in objects defined by the introduction of  chapter 15 of the
+    Tests that Intl.Collator.prototype meets the requirements for
+    built-in objects defined by the introduction of chapter 17 of the
     ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/11.1.1_1.js b/test/intl402/11.1.1_1.js
index e31ddb9e07cca01ffbc832b7efd6410f81f47c9d..6e36af019b8662d6486c2340d6d1dd49b7d60a4b 100644
--- a/test/intl402/11.1.1_1.js
+++ b/test/intl402/11.1.1_1.js
@@ -3,40 +3,27 @@
 
 /*---
 es5id: 11.1.1_1
-description: Tests that an object can't be re-initialized as a NumberFormat.
+description: Tests that the this-value is ignored in NumberFormat.
 author: Norbert Lindenberg
 includes: [testIntl.js]
 ---*/
 
 testWithIntlConstructors(function (Constructor) {
-    var obj, error;
-    
+    var obj, newObj;
+
     // variant 1: use constructor in a "new" expression
     obj = new Constructor();
-    try {
-        Intl.NumberFormat.call(obj);
-    } catch (e) {
-        error = e;
-    }
-    if (error === undefined) {
-        $ERROR("Re-initializing object created with \"new\" as NumberFormat was not rejected.");
-    } else if (error.name !== "TypeError") {
-        $ERROR("Re-initializing object created with \"new\" as NumberFormat was rejected with wrong error " + error.name + ".");
+    newObj = Intl.NumberFormat.call(obj);
+    if (obj === newObj) {
+      $ERROR("NumberFormat object created with \"new\" was not ignored as this-value.");
     }
-    
+
     // variant 2: use constructor as a function
-    obj = Constructor.call({});
-    error = undefined;
-    try {
-        Intl.NumberFormat.call(obj);
-    } catch (e) {
-        error = e;
+    obj = Constructor();
+    newObj = Intl.NumberFormat.call(obj);
+    if (obj === newObj) {
+      $ERROR("NumberFormat object created with constructor as function was not ignored as this-value.");
     }
-    if (error === undefined) {
-        $ERROR("Re-initializing object created with constructor as function as NumberFormat was not rejected.");
-    } else if (error.name !== "TypeError") {
-        $ERROR("Re-initializing object created with constructor as function as NumberFormat was rejected with wrong error " + error.name + ".");
-    }
-    
+
     return true;
 });
diff --git a/test/intl402/11.1.2.1_4.js b/test/intl402/11.1.2.1_4.js
index e21140147e8ae16b41db302dfa86722dc7ee720e..3cff14d8054f784b34433484b463147982f253f4 100644
--- a/test/intl402/11.1.2.1_4.js
+++ b/test/intl402/11.1.2.1_4.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 11.1.2.1_4
 description: >
-    Tests that for non-object values passed as this to NumberFormat a
-    wrapper object will be initialized and returned.
+    Tests that non-object values passed as this to NumberFormat are ignored
+    and a normal number format object will be initialized and returned.
 author: Norbert Lindenberg
 ---*/
 
diff --git a/test/intl402/11.1.2.js b/test/intl402/11.1.2.js
index cd722b0f355b4ee1a00bc5fa1a39ad581019df3d..6032130c86dc575017c69b4d625a0051ac2e9abb 100644
--- a/test/intl402/11.1.2.js
+++ b/test/intl402/11.1.2.js
@@ -15,15 +15,14 @@ var a = [0, 1, -1, -123456.789, -Infinity, NaN];
 var referenceNumberFormat = new Intl.NumberFormat(locales);
 var referenceFormatted = a.map(referenceNumberFormat.format);
 
-function MyNumberFormat(locales, options) {
-    Intl.NumberFormat.call(this, locales, options);
+class MyNumberFormat extends Intl.NumberFormat {
+  constructor(locales, options) {
+    super(locales, options);
     // could initialize MyNumberFormat properties
+  }
+  // could add methods to MyNumberFormat.prototype
 }
 
-MyNumberFormat.prototype = Object.create(Intl.NumberFormat.prototype);
-MyNumberFormat.prototype.constructor = MyNumberFormat;
-// could add methods to MyNumberFormat.prototype
-
 var format = new MyNumberFormat(locales);
 var actual = a.map(format.format);
 testArraysAreSame(referenceFormatted, actual);
diff --git a/test/intl402/11.1_L15.js b/test/intl402/11.1_L15.js
index 7d1ff5e99413af71d016e3e77c260683ebf07977..4ac63e4edf572e3764ca6a6012c3a4a8d5bb2f0a 100644
--- a/test/intl402/11.1_L15.js
+++ b/test/intl402/11.1_L15.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 11.1_L15
 description: >
-    Tests that Intl.NumberFormat  meets the requirements for built-in
-    objects defined by the introduction of  chapter 15 of the
+    Tests that Intl.NumberFormat meets the requirements for built-in
+    objects defined by the introduction of chapter 17 of the
     ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/11.2.2_L15.js b/test/intl402/11.2.2_L15.js
index ae828988c53f25900bf129a7c012a154361237cf..e04db784195aa077179c1a5f0a50072f42e3a94a 100644
--- a/test/intl402/11.2.2_L15.js
+++ b/test/intl402/11.2.2_L15.js
@@ -4,9 +4,9 @@
 /*---
 es5id: 11.2.2_L15
 description: >
-    Tests that Intl.NumberFormat.supportedLocalesOf  meets the
+    Tests that Intl.NumberFormat.supportedLocalesOf meets the
     requirements for built-in objects defined by the introduction of
-    chapter 15 of the ECMAScript Language Specification.
+    chapter 17 of the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
 ---*/
diff --git a/test/intl402/11.3.2_1_a_L15.js b/test/intl402/11.3.2_1_a_L15.js
index d27d1090b92b60465686dcd3d789fc38b5420197..cdfcf105284265b422ffc686945cbc9f6ee380a9 100644
--- a/test/intl402/11.3.2_1_a_L15.js
+++ b/test/intl402/11.3.2_1_a_L15.js
@@ -5,8 +5,8 @@
 es5id: 11.3.2_1_a_L15
 description: >
     Tests that the function returned by
-    Intl.NumberFormat.prototype.format  meets the requirements for
-    built-in objects defined by the introduction of  chapter 15 of the
+    Intl.NumberFormat.prototype.format meets the requirements for
+    built-in objects defined by the introduction of chapter 17 of the
     ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/11.3.2_L15.js b/test/intl402/11.3.2_L15.js
index 04eddf44bcdfb66d6d1866415099654416db4808..047046611b8f99beff157da3063ad3d22ddcbc27 100644
--- a/test/intl402/11.3.2_L15.js
+++ b/test/intl402/11.3.2_L15.js
@@ -6,7 +6,7 @@ es5id: 11.3.2_L15
 description: >
     Tests that the getter for Intl.NumberFormat.prototype.format
     meets the requirements for built-in objects defined by the
-    introduction of  chapter 15 of the ECMAScript Language
+    introduction of chapter 17 of the ECMAScript Language
     Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/11.3.3_L15.js b/test/intl402/11.3.3_L15.js
index d45d6ab2a44ce9d21b565224be31e06805668121..9709ab848d131fa76dfe1808e8a797be5412e8d0 100644
--- a/test/intl402/11.3.3_L15.js
+++ b/test/intl402/11.3.3_L15.js
@@ -4,9 +4,9 @@
 /*---
 es5id: 11.3.3_L15
 description: >
-    Tests that Intl.NumberFormat.prototype.resolvedOptions  meets the
+    Tests that Intl.NumberFormat.prototype.resolvedOptions meets the
     requirements for built-in objects defined by the introduction of
-    chapter 15 of the ECMAScript Language Specification.
+    chapter 17 of the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
 ---*/
diff --git a/test/intl402/11.3_L15.js b/test/intl402/11.3_L15.js
index e36f474a2071a87ecbb6a66efb8d6baac907169f..12917b11834fc156901d71db394b3c9112375d3c 100644
--- a/test/intl402/11.3_L15.js
+++ b/test/intl402/11.3_L15.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 11.3_L15
 description: >
-    Tests that Intl.NumberFormat.prototype  meets the requirements for
-    built-in objects defined by the introduction of  chapter 15 of the
+    Tests that Intl.NumberFormat.prototype meets the requirements for
+    built-in objects defined by the introduction of chapter 17 of the
     ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/12.1.1_1.js b/test/intl402/12.1.1_1.js
index 2e01c2fb35332c55d6ea263a249e42bb6df20a0f..5a042454a213352f713f4cbdbd315fb7e6afb69c 100644
--- a/test/intl402/12.1.1_1.js
+++ b/test/intl402/12.1.1_1.js
@@ -3,40 +3,27 @@
 
 /*---
 es5id: 12.1.1_1
-description: Tests that an object can't be re-initialized as a DateTimeFormat.
+description: Tests that the this-value is ignored in DateTimeFormat.
 author: Norbert Lindenberg
 includes: [testIntl.js]
 ---*/
 
 testWithIntlConstructors(function (Constructor) {
-    var obj, error;
-    
+    var obj, newObj;
+
     // variant 1: use constructor in a "new" expression
     obj = new Constructor();
-    try {
-        Intl.DateTimeFormat.call(obj);
-    } catch (e) {
-        error = e;
-    }
-    if (error === undefined) {
-        $ERROR("Re-initializing object created with \"new\" as DateTimeFormat was not rejected.");
-    } else if (error.name !== "TypeError") {
-        $ERROR("Re-initializing object created with \"new\" as DateTimeFormat was rejected with wrong error " + error.name + ".");
+    newObj = Intl.DateTimeFormat.call(obj);
+    if (obj === newObj) {
+      $ERROR("DateTimeFormat object created with \"new\" was not ignored as this-value.");
     }
-    
+
     // variant 2: use constructor as a function
-    obj = Constructor.call({});
-    error = undefined;
-    try {
-        Intl.DateTimeFormat.call(obj);
-    } catch (e) {
-        error = e;
+    obj = Constructor();
+    newObj = Intl.DateTimeFormat.call(obj);
+    if (obj === newObj) {
+      $ERROR("DateTimeFormat object created with constructor as function was not ignored as this-value.");
     }
-    if (error === undefined) {
-        $ERROR("Re-initializing object created with constructor as function as DateTimeFormat was not rejected.");
-    } else if (error.name !== "TypeError") {
-        $ERROR("Re-initializing object created with constructor as function as DateTimeFormat was rejected with wrong error " + error.name + ".");
-    }
-    
+
     return true;
 });
diff --git a/test/intl402/12.1.2.1_4.js b/test/intl402/12.1.2.1_4.js
index 5806f89ac46bb4ac8cc5437000dd68ebad27ac46..8ba9f335205241da526d0b683a0b02d285db85e0 100644
--- a/test/intl402/12.1.2.1_4.js
+++ b/test/intl402/12.1.2.1_4.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 12.1.2.1_4
 description: >
-    Tests that for non-object values passed as this to DateTimeFormat
-    a  wrapper object will be initialized and returned.
+    Tests that non-object values passed as this to DateTimeFormat are ignored
+    and a normal date-time format object will be initialized and returned.
 author: Norbert Lindenberg
 ---*/
 
diff --git a/test/intl402/12.1.2.js b/test/intl402/12.1.2.js
index 6df79f5f538cc6273c625d926111a97a355ef440..5265b68fd1d3be60bddfe0d8e237034e2862e9df 100644
--- a/test/intl402/12.1.2.js
+++ b/test/intl402/12.1.2.js
@@ -15,15 +15,14 @@ var a = [new Date(0), Date.now(), new Date(Date.parse("1989-11-09T17:57:00Z"))];
 var referenceDateTimeFormat = new Intl.DateTimeFormat(locales);
 var referenceFormatted = a.map(referenceDateTimeFormat.format);
 
-function MyDateTimeFormat(locales, options) {
-    Intl.DateTimeFormat.call(this, locales, options);
+class MyDateTimeFormat extends Intl.DateTimeFormat {
+  constructor(locales, options) {
+    super(locales, options);
     // could initialize MyDateTimeFormat properties
+  }
+  // could add methods to MyDateTimeFormat.prototype
 }
 
-MyDateTimeFormat.prototype = Object.create(Intl.DateTimeFormat.prototype);
-MyDateTimeFormat.prototype.constructor = MyDateTimeFormat;
-// could add methods to MyDateTimeFormat.prototype
-
 var format = new MyDateTimeFormat(locales);
 var actual = a.map(format.format);
 testArraysAreSame(referenceFormatted, actual);
diff --git a/test/intl402/12.1_L15.js b/test/intl402/12.1_L15.js
index e3b13f313f9f488184f003ea561dac588e14d7ac..3ff0986b204eb53716d6c11076354973b381b818 100644
--- a/test/intl402/12.1_L15.js
+++ b/test/intl402/12.1_L15.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 12.1_L15
 description: >
-    Tests that Intl.DateTimeFormat  meets the requirements for
-    built-in objects defined by the introduction of  chapter 15 of the
+    Tests that Intl.DateTimeFormat meets the requirements for
+    built-in objects defined by the introduction of chapter 17 of the
     ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/12.2.2_L15.js b/test/intl402/12.2.2_L15.js
index ba8ad9c69d39dac92163961a31dceaceb62b6d60..1451ba70a0a9871784c0b130d9b872c85fbf421b 100644
--- a/test/intl402/12.2.2_L15.js
+++ b/test/intl402/12.2.2_L15.js
@@ -4,9 +4,9 @@
 /*---
 es5id: 12.2.2_L15
 description: >
-    Tests that Intl.DateTimeFormat.supportedLocalesOf  meets the
+    Tests that Intl.DateTimeFormat.supportedLocalesOf meets the
     requirements for built-in objects defined by the introduction of
-    chapter 15 of the ECMAScript Language Specification.
+    chapter 17 of the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
 ---*/
diff --git a/test/intl402/12.3.2_1_a_L15.js b/test/intl402/12.3.2_1_a_L15.js
index ffb76b7d83df2995e2494e42bbe0def693d21fac..ecc3ae9f3f08b63c6ed01d8442822b5fb3fd5fb6 100644
--- a/test/intl402/12.3.2_1_a_L15.js
+++ b/test/intl402/12.3.2_1_a_L15.js
@@ -5,8 +5,8 @@
 es5id: 12.3.2_1_a_L15
 description: >
     Tests that the function returned by
-    Intl.DateTimeFormat.prototype.format  meets the requirements for
-    built-in objects defined by the introduction of  chapter 15 of the
+    Intl.DateTimeFormat.prototype.format meets the requirements for
+    built-in objects defined by the introduction of chapter 17 of the
     ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/12.3.2_L15.js b/test/intl402/12.3.2_L15.js
index ef0280ccc2eba90fe765dcd9309f0cef8645a285..18a216e61185d7c2274a1fa87bc2acfd6874f10f 100644
--- a/test/intl402/12.3.2_L15.js
+++ b/test/intl402/12.3.2_L15.js
@@ -6,7 +6,7 @@ es5id: 12.3.2_L15
 description: >
     Tests that the getter for Intl.DateTimeFormat.prototype.format
     meets the requirements for built-in objects defined by the
-    introduction of  chapter 15 of the ECMAScript Language
+    introduction of chapter 17 of the ECMAScript Language
     Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/12.3.3.js b/test/intl402/12.3.3.js
index 55e31ad869c03ca1f10cf0d960c6360d4726c0dc..46a6b38c0e521d77603fa334774d5b3f1679040b 100644
--- a/test/intl402/12.3.3.js
+++ b/test/intl402/12.3.3.js
@@ -40,7 +40,7 @@ var calendars = [
 mustHaveProperty(actual, "locale", isCanonicalizedStructurallyValidLanguageTag);
 mustHaveProperty(actual, "calendar", calendars);
 mustHaveProperty(actual, "numberingSystem", isValidNumberingSystem);
-mustHaveProperty(actual, "timeZone", [undefined]);
+mustHaveProperty(actual, "timeZone", isCanonicalizedStructurallyValidTimeZoneName);
 mustNotHaveProperty(actual, "weekday");
 mustNotHaveProperty(actual, "era");
 mustHaveProperty(actual, "year", ["2-digit", "numeric"]);
diff --git a/test/intl402/12.3.3_L15.js b/test/intl402/12.3.3_L15.js
index a4de84c1bd24a359d0291f703e4ec9b179510a7f..9ba1f1e6bbecbb701f46cadc51c6d8ecd5a40627 100644
--- a/test/intl402/12.3.3_L15.js
+++ b/test/intl402/12.3.3_L15.js
@@ -4,9 +4,9 @@
 /*---
 es5id: 12.3.3_L15
 description: >
-    Tests that Intl.DateTimeFormat.prototype.resolvedOptions  meets
+    Tests that Intl.DateTimeFormat.prototype.resolvedOptions meets
     the requirements for built-in objects defined by the introduction
-    of  chapter 15 of the ECMAScript Language Specification.
+    of chapter 17 of the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
 ---*/
diff --git a/test/intl402/12.3_L15.js b/test/intl402/12.3_L15.js
index c37c32c39128f405642daa67b95b9903b303a846..6139fc766f309aff52b432b4ec53778c25f8d902 100644
--- a/test/intl402/12.3_L15.js
+++ b/test/intl402/12.3_L15.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 12.3_L15
 description: >
-    Tests that Intl.DateTimeFormat.prototype  meets the requirements
-    for built-in objects defined by the introduction of  chapter 15 of
+    Tests that Intl.DateTimeFormat.prototype meets the requirements
+    for built-in objects defined by the introduction of chapter 17 of
     the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/13.1.1_L15.js b/test/intl402/13.1.1_L15.js
index fb28e49e65f9cf6ebd02d5190e7023695c8b02de..552bfb34cd67c13a7523e2c71566fca430d943e7 100644
--- a/test/intl402/13.1.1_L15.js
+++ b/test/intl402/13.1.1_L15.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 13.1.1_L15
 description: >
-    Tests that String.prototype.localeCompare  meets the requirements
-    for built-in objects defined by the introduction of  chapter 15 of
+    Tests that String.prototype.localeCompare meets the requirements
+    for built-in objects defined by the introduction of chapter 17 of
     the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/13.2.1_L15.js b/test/intl402/13.2.1_L15.js
index f4b27e792b72808944dd93dabfedf9c1ddf97451..5c20c41c45a44f193287b873fd9c2adb291b752f 100644
--- a/test/intl402/13.2.1_L15.js
+++ b/test/intl402/13.2.1_L15.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 13.2.1_L15
 description: >
-    Tests that Number.prototype.toLocaleString  meets the requirements
-    for built-in objects defined by the introduction of  chapter 15 of
+    Tests that Number.prototype.toLocaleString meets the requirements
+    for built-in objects defined by the introduction of chapter 17 of
     the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/13.3.1_L15.js b/test/intl402/13.3.1_L15.js
index 598359c18258aec21dcd25de9ead50676174cfd4..bd49202ec7041311dde754d8c78947231f4f5f3c 100644
--- a/test/intl402/13.3.1_L15.js
+++ b/test/intl402/13.3.1_L15.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 13.3.1_L15
 description: >
-    Tests that Date.prototype.toLocaleString  meets the requirements
-    for built-in objects defined by the introduction of  chapter 15 of
+    Tests that Date.prototype.toLocaleString meets the requirements
+    for built-in objects defined by the introduction of chapter 17 of
     the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
diff --git a/test/intl402/13.3.2_L15.js b/test/intl402/13.3.2_L15.js
index 25fdf5b11fcbf87b30c82eb616d280bb771b92f9..277e109cfb0f5fd51d05726d35b450020703393a 100644
--- a/test/intl402/13.3.2_L15.js
+++ b/test/intl402/13.3.2_L15.js
@@ -4,9 +4,9 @@
 /*---
 es5id: 13.3.2_L15
 description: >
-    Tests that Date.prototype.toLocaleDateString  meets the
+    Tests that Date.prototype.toLocaleDateString meets the
     requirements for built-in objects defined by the introduction of
-    chapter 15 of the ECMAScript Language Specification.
+    chapter 17 of the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
 ---*/
diff --git a/test/intl402/13.3.3_L15.js b/test/intl402/13.3.3_L15.js
index 31147347b0e94ac38e2f23941d6f9cb614de076c..e5a33ffe079e343965853f67f6037b6590083775 100644
--- a/test/intl402/13.3.3_L15.js
+++ b/test/intl402/13.3.3_L15.js
@@ -4,9 +4,9 @@
 /*---
 es5id: 13.3.3_L15
 description: >
-    Tests that Date.prototype.toLocaleTimeString  meets the
+    Tests that Date.prototype.toLocaleTimeString meets the
     requirements for built-in objects defined by the introduction of
-    chapter 15 of the ECMAScript Language Specification.
+    chapter 17 of the ECMAScript Language Specification.
 author: Norbert Lindenberg
 includes: [testBuiltInObject.js]
 ---*/
diff --git a/test/intl402/8.0_L15.js b/test/intl402/8.0_L15.js
index 6304c79089801e63d0d995bfd5006d1733072403..fc0b04259122934be7ade881c36505c6ceb6accd 100644
--- a/test/intl402/8.0_L15.js
+++ b/test/intl402/8.0_L15.js
@@ -4,8 +4,8 @@
 /*---
 es5id: 8.0_L15
 description: >
-    Tests that Intl  meets the requirements for built-in objects
-    defined by the introduction of  chapter 15 of the ECMAScript
+    Tests that Intl meets the requirements for built-in objects
+    defined by the introduction of chapter 17 of the ECMAScript
     Language Specification.
 author: Norbert Lindenberg
 includes: