aboutsummaryrefslogtreecommitdiffstats
path: root/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics
diff options
context:
space:
mode:
Diffstat (limited to 'external/contributions/Google/sputniktests/tests/Implementation_Diagnostics')
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S11.4.3_D1.1.js13
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S11.4.3_D1.2.js13
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S12.6.4_D1.js47
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T1.js27
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T2.js35
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T3.js40
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T4.js43
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T5.js45
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T6.js47
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T7.js52
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T8.js65
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2_D1.1.js27
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2_D1.2.js27
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13_D1_T1.js69
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D1_T1.js37
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D4_T1.js50
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D4_T2.js50
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D4_T3.js53
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D6_T1.js30
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D6_T2.js31
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D7.js48
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.1.2.2_D1.1.js24
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.1.2.2_D1.2.js24
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.10.6.3_D1_T1.js22
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.4.4.12_D1.5_T1.js51
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.4.4.12_D1.5_T2.js51
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.2_D1_T1.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.2_D1_T2.js31
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.2_D2.js20
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T1.js15
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T2.js15
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T3.js15
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T4.js20
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.7.4.5_A1.2_D02.js131
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.7.4.5_D1.2_T01.js132
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.9.1.14_D1.js17
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D1.1.js18
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D1.2.js35
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.1.js18
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.2.js19
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.3.js25
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.4.js35
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.5.js35
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.6.js25
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.7.js29
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.1.js26
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.2.js26
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.3.js26
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.4.js26
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.8_D1.1.js18
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.8_D1.2.js30
-rw-r--r--external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.8_D1.3.js78
52 files changed, 1915 insertions, 0 deletions
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S11.4.3_D1.1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S11.4.3_D1.1.js
new file mode 100644
index 000000000..e687adb62
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S11.4.3_D1.1.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.4.3_D1.1;
+ * @section: 11.4.3;
+ * @assertion: Result of typeof from RegExp is "function";
+*/
+
+// CHECK#1
+if (typeof RegExp !== "function") {
+ $ERROR('#1: Result of typeof from RegExp is "function"');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S11.4.3_D1.2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S11.4.3_D1.2.js
new file mode 100644
index 000000000..c72b26f81
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S11.4.3_D1.2.js
@@ -0,0 +1,13 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S11.4.3_D1.2;
+ * @section: 11.4.3;
+ * @assertion: Result of typeof from RegExp is "object";
+*/
+
+// CHECK#1
+if (typeof RegExp !== "object") {
+ $ERROR('#1: Result of typeof from RegExp is "object"');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S12.6.4_D1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S12.6.4_D1.js
new file mode 100644
index 000000000..19b97fd74
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S12.6.4_D1.js
@@ -0,0 +1,47 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S12.6.4_D1;
+* @section: 12.6.4;
+* @assertion: If new properties are added to the object being
+* enumerated during enumeration, the newly added properties to be visited in the active
+* enumeration;
+*/
+
+__obj={aa:1,ba:2,ca:3};
+__source={sra:9,srb:8,src:7};
+
+__accum="";
+
+for (__key in __obj){
+
+ __accum+=(__key+__obj[__key]);
+
+ add2hash(__obj,__source);
+
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (!(
+(__accum.indexOf("aa1")!==-1)&&
+(__accum.indexOf("ba2")!==-1)&&
+(__accum.indexOf("ca3")!==-1)&&
+(__accum.indexOf("sra9")!==-1)&&
+(__accum.indexOf("srb8")!==-1)&&
+(__accum.indexOf("src7")!==-1)
+)) {
+ $ERROR('#1: the newly added properties to be visited in the active enumeration');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+function add2hash(hash_map_target, hash_map_be_added){
+ if (added) return;
+ for (key in hash_map_be_added){
+ hash_map_target[key] = hash_map_be_added[key];
+ }
+ var added = true;
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T1.js
new file mode 100644
index 000000000..6f14c5bd1
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T1.js
@@ -0,0 +1,27 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S13.2.2_D20_T1;
+* @section: 13.2.2;
+* @assertion: function declaration inside of "with" statement is a fuction declaration inside of current execution context;
+*/
+
+var a = 1;
+
+var __obj = {a:2};
+
+with (__obj)
+{
+ result = __func();
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (result !== 1) {
+ $ERROR('#1: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+function __func(){return a;};
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T2.js
new file mode 100644
index 000000000..20eaa0634
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T2.js
@@ -0,0 +1,35 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S13.2.2_D20_T2;
+* @section: 13.2.2;
+* @assertion: function declaration inside of "with" statement is a fuction declaration inside of current execution context;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#0
+if (typeof __func !== "function") {
+ $ERROR('#0: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var a = 1;
+
+var __obj = {a:2};
+
+with (__obj)
+{
+ result = __func();
+
+ function __func(){return a;};
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (result !== 1) {
+ $ERROR('#1: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T3.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T3.js
new file mode 100644
index 000000000..3b338f292
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T3.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S13.2.2_D20_T3;
+* @section: 13.2.2;
+* @assertion: function declaration inside of "with" statement is a fuction declaration inside of current execution context;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#0
+if (typeof __func !== "function") {
+ $ERROR('#0: function\'s scope chain is from when it was declared');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var a = 1;
+
+var __obj = {a:2};
+
+result = __func();
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (result !== 1) {
+ $ERROR('#1: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+try {
+ with (__obj)
+ {
+ throw 3;
+ function __func(){return a;};
+ }
+} catch (e) {
+ ;
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T4.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T4.js
new file mode 100644
index 000000000..ff1d1c50c
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T4.js
@@ -0,0 +1,43 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S13.2.2_D20_T4;
+* @section: 13.2.2;
+* @assertion: function declaration inside of "with" statement is a fuction declaration inside of current execution context;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#0
+if (typeof __func !== "function") {
+ $ERROR('#0: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var a = 1;
+
+var __obj = {a:2,__obj:{a:3}};
+
+result = __func();
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (result !== 1) {
+ $ERROR('#1: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+try {
+ with (__obj)
+ {
+ throw 3;
+ with(__obj){
+ throw 5;
+ function __func(){return a;};
+ }
+ }
+} catch (e) {
+ ;
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T5.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T5.js
new file mode 100644
index 000000000..8921214b2
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T5.js
@@ -0,0 +1,45 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S13.2.2_D20_T5;
+* @section: 13.2.2;
+* @assertion: function declaration inside of "with" statement is a fuction declaration inside of current execution context;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#0
+if (typeof __func !== "function") {
+ $ERROR('#0: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var a = 1;
+
+var __obj = {a:2};
+
+with (__obj)
+{
+ try {
+ throw 3;
+ function __func()
+ {
+ return a;
+ }
+ } catch (e) {
+ ;
+ }
+}
+
+delete __obj;
+
+result = __func();
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (result !== 1) {
+ $ERROR('#1: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T6.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T6.js
new file mode 100644
index 000000000..23cd590ea
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T6.js
@@ -0,0 +1,47 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S13.2.2_D20_T6;
+* @section: 13.2.2;
+* @assertion: function declaration inside of "with" statement is a fuction declaration inside of current execution context;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#0
+if (typeof __func !== "function") {
+ $ERROR('#0: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var a = 1;
+
+var __obj = {a:2};
+
+with (__obj)
+{
+ while(0){
+ function __func()
+ {
+ return a;
+ }
+ }
+}
+
+delete __obj;
+
+var __obj = {a:3};
+
+with (__obj)
+{
+ result = __func();
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (result !== 1) {
+ $ERROR('#1: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T7.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T7.js
new file mode 100644
index 000000000..f3b32d188
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T7.js
@@ -0,0 +1,52 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S13.2.2_D20_T7;
+* @section: 13.2.2;
+* @assertion: function declaration inside of "with" statement is a fuction declaration inside of current execution context;
+*/
+
+var a = 1;
+
+var __obj = {a:2};
+
+with (__obj)
+{
+ function __func()
+ {
+ return a;
+ }
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__obj.hasOwnProperty('__func')) {
+ $ERROR('#1: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (!(this.hasOwnProperty('__func'))) {
+ $ERROR('#2: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+if (__func in __obj) {
+ $ERROR('#3: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#4
+if (this.__func === undefined) {
+ $ERROR('#4: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T8.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T8.js
new file mode 100644
index 000000000..9f99ad571
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2.2_D20_T8.js
@@ -0,0 +1,65 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S13.2.2_D20_T8;
+* @section: 13.2.2;
+* @assertion: function declaration inside of "with" statement is a fuction declaration inside of current execution context;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#0
+if (typeof __func !== "function") {
+ $ERROR('#0: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var a = 1, b = "a";
+
+var __obj = {a:2};
+
+with (__obj)
+{
+ while(0){
+ function __func()
+ {
+ return a;
+ }
+ }
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__func() !== "a") {
+ $ERROR('#1: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+delete __obj;
+
+var __obj = {a:3,b:"b"};
+
+with (__obj)
+{
+ for(b in null){
+ function __func()
+ {
+ return b;
+ }
+ }
+}
+
+with (__obj)
+{
+ result = __func();
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (result !== "a") {
+ $ERROR('#2: function declaration inside of "with" statement is a fuction declaration inside of current execution context');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2_D1.1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2_D1.1.js
new file mode 100644
index 000000000..d17fe71bc
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2_D1.1.js
@@ -0,0 +1,27 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S13.2_D1.1;
+ * @section: 13.2;
+ * @assertion: Create a new native ECMAScript object, not joined the already exists object that was created
+ * by an earlier call to this section's algorithm, and if that call to this section's algorithm was given
+ * a FunctionBody that equated to the FunctionBody given now;
+*/
+
+function A(){
+ function B(x) { return x*x; }
+ return B;
+}
+
+var f1 = A();
+var f2 = A();
+
+//CHECK#1
+if (f1 == f2) {
+ $ERROR('#1: Create a new native ECMAScript object, not joined the already exists object');
+} else {
+ if (f1 === f2) {
+ $ERROR('#1: Create a new native ECMAScript object, not joined the already exists object');
+ }
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2_D1.2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2_D1.2.js
new file mode 100644
index 000000000..ae58b11aa
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13.2_D1.2.js
@@ -0,0 +1,27 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S13.2_D1.2;
+ * @section: 13.2;
+ * @assertion: Create a new native ECMAScript object, joined the already exists object that was created
+ * by an earlier call to this section's algorithm, and if that call to this section's algorithm was given
+ * a FunctionBody that equated to the FunctionBody given now;
+*/
+
+function A(){
+ function B(x) { return x*x; }
+ return B;
+}
+
+var f1 = A();
+var f2 = A();
+
+//CHECK#1
+if (f1 != f2) {
+ $ERROR('#1: Create a new native ECMAScript object, joined the already exists object');
+} else {
+ if (f1 !== f2) {
+ $ERROR('#1: Create a new native ECMAScript object, joined the already exists object');
+ }
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13_D1_T1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13_D1_T1.js
new file mode 100644
index 000000000..14d1c67e7
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S13_D1_T1.js
@@ -0,0 +1,69 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S13_D1_T1;
+* @section: 13,12.10;
+* @assertion: Function declaration inside of "with" statement interprets as function expression;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#0
+if (typeof __func !== "undefined") {
+ $ERROR('#0: Function declaration inside of "with" statement interprets as function expression');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var a = 1, b = "a";
+
+var __obj = {a:2,b:"x"};
+
+with (__obj)
+{
+ function __func()
+ {
+ return a;
+ }
+}
+
+delete __obj;
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__func() !== 2) {
+ $ERROR('#1: Function declaration inside of "with" statement interprets as function expression');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var __obj = {a:3,b:"b"};
+
+with (__obj)
+{
+ function __func()
+ {
+ return b;
+ }
+}
+
+delete __obj;
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__func()!=="b") {
+ $ERROR('#2: Function declaration inside of "with" statement interprets as function expression');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+with ({a:99,b:"c"})
+{
+ //////////////////////////////////////////////////////////////////////////////
+ //CHECK#2
+ if (__func() !== "c") {
+ $ERROR('#2: Function declaration inside of "with" statement interprets as function expression');
+ }
+ //
+ //////////////////////////////////////////////////////////////////////////////
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D1_T1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D1_T1.js
new file mode 100644
index 000000000..9a28f5906
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D1_T1.js
@@ -0,0 +1,37 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S14_D1_T1;
+* @section: 14;
+* @assertion: Function declaration may be in unreacheable fragment of program;
+*/
+
+THERE = "I'm there";
+HERE = "I'm here";
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+try{
+ if (__func() !== THERE) {
+ $ERROR('#1: Function declaration may be in unreacheable fragment of program');
+ }
+} catch(e){
+ $ERROR('#1.1: '+e.message);
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+if (true){
+ function __func(){return HERE;};
+} else {
+ function __func(){return THERE;};
+};
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__func() !== THERE) {
+ $ERROR('#2: Function declaration may be in unreacheable fragment of program');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D4_T1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D4_T1.js
new file mode 100644
index 000000000..be5b11464
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D4_T1.js
@@ -0,0 +1,50 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S14_D4_T1;
+* @section: 14;
+* @assertion: Function declaration may be inside of try-catch block ;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (typeof __sleep !== "function") {
+ $FAIL('#1: Test fails badly');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+try{
+ __sleep();
+ $ERROR('#2: Function declaration may be inside of try-catch block');
+} catch(e){
+ $PRINT("#2 passed "+e.message);
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+try {
+ function __sleep(){
+ return CHUNK;
+ }
+} catch (e) {
+ ;
+}
+
+
+CHUNK="zzz...";
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+try{
+ if (__sleep()!=="zzz...") {
+ $ERROR('#3: Function declaration may be inside of try-catch block');
+ }
+} catch(e){
+ $ERROR('#3.1: Function declaration may be inside of try-catch block');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D4_T2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D4_T2.js
new file mode 100644
index 000000000..4df602d45
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D4_T2.js
@@ -0,0 +1,50 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S14_D4_T2;
+* @section: 14;
+* @assertion: Function declaration may be inside of try-catch block ;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (typeof __sleep !== "function") {
+ $FAIL('#1: Test fails badly');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+try{
+ __sleep();
+ $ERROR('#2: Function declaration may be inside of try-catch block');
+} catch(e){
+ $PRINT("#2 passed "+e.message);
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+try {
+ ;
+} catch (e) {
+ function __sleep(){
+ return CHUNK;
+ }
+}
+
+
+CHUNK="zzz...";
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+try{
+ if (__sleep()!=="zzz...") {
+ $ERROR('#3: Function declaration may be inside of try-catch block');
+ }
+} catch(e){
+ $ERROR('#3.1: Function declaration may be inside of try-catch block');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D4_T3.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D4_T3.js
new file mode 100644
index 000000000..c71cc70bd
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D4_T3.js
@@ -0,0 +1,53 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S14_D4_T3;
+* @section: 14;
+* @assertion: Function declaration may be inside of try-catch block ;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (typeof __sleep !== "function") {
+ $FAIL('#1: Test fails badly');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+try{
+ __sleep();
+ $ERROR('#2: Function declaration may be inside of try-catch block');
+} catch(e){
+ $PRINT("#2 passed "+e.message);
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+try {
+ function __sleep(){
+ return BBUNK;
+ }
+} catch (e) {
+ function __sleep(){
+ return CHUNK;
+ }
+}
+
+
+CHUNK="zzz...";
+BBUNK="dream...";
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+try{
+ if (__sleep()!=="zzz...") {
+ $ERROR('#3: Function declaration may be inside of try-catch block');
+ }
+} catch(e){
+ $ERROR('#3.1: Function declaration may be inside of try-catch block');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D6_T1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D6_T1.js
new file mode 100644
index 000000000..819fff1d0
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D6_T1.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S14_D6_T1;
+* @section: 14;
+* @assertion: Function declaration may be inside of while block ;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (typeof __func !== "function") {
+ $ERROR('1: Function declaration may be inside of while block');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+while(0){
+ function __func(){return BANNER;};
+}
+
+BANNER="union jack";
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__func() !== "union jack") {
+ $ERROR('2: Function declaration may be inside of while block');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D6_T2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D6_T2.js
new file mode 100644
index 000000000..e6e9b8a5e
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D6_T2.js
@@ -0,0 +1,31 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S14_D6_T2;
+* @section: 14;
+* @assertion: Function declaration may be inside of while block ;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (typeof __func !== "function") {
+ $ERROR('1: Function declaration may be inside of while block');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+while(1){
+ break;
+ function __func(){return BANNER;};
+}
+
+BANNER="union jack";
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__func() !== "union jack") {
+ $ERROR('2: Function declaration may be inside of while block');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D7.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D7.js
new file mode 100644
index 000000000..73082b82c
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S14_D7.js
@@ -0,0 +1,48 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S14_D7;
+* @section: 14;
+* @assertion: Function declaration may be inside of "with" block ;
+*/
+
+BANNER="union jack";
+
+a=1;
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (typeof __func !== "function") {
+ $ERROR('1: Function declaration may be inside of "with" block');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+__obj={a:2};
+
+with(__obj){
+ function __func(){return a;};
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__func() !== 1) {
+ $ERROR('2: Function declaration may be inside of "with" block ');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+__obj.a=BANNER;
+
+with(__obj){
+ //////////////////////////////////////////////////////////////////////////////
+ //CHECK#3
+ if (__func() !== "union jack") {
+ $ERROR('3: Function declaration may be inside of "with" block ');
+ }
+ //
+ //////////////////////////////////////////////////////////////////////////////
+}
+
+
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.1.2.2_D1.1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.1.2.2_D1.1.js
new file mode 100644
index 000000000..da793b1a8
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.1.2.2_D1.1.js
@@ -0,0 +1,24 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S15.1.2.2_D1.1;
+ * @section: 15.1.2.2, 9.8;
+ * @assertion: If the length of S is at least 1 and the first character of S is 0,
+ * then R = 8;
+*/
+
+//CHECK#2
+if (parseInt("08") !== parseInt("08", 8)) {
+ $ERROR('#1: parseInt("08") === parseInt("08", 8)');
+}
+
+//CHECK#2
+if (parseInt("09") !== parseInt("09", 8)) {
+ $ERROR('#2: parseInt("09") === parseInt("09", 8)');
+}
+
+//CHECK#3
+if (parseInt("010") !== parseInt("010", 8)) {
+ $ERROR('#3: parseInt("010") === parseInt("010", 8)');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.1.2.2_D1.2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.1.2.2_D1.2.js
new file mode 100644
index 000000000..cbdc1fe59
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.1.2.2_D1.2.js
@@ -0,0 +1,24 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S15.1.2.2_D1.2;
+ * @section: 15.1.2.2, 9.8;
+ * @assertion: If the length of S is at least 1 and the first character of S is 0,
+ * then R = 10;
+*/
+
+//CHECK#1
+if (parseInt("08") !== parseInt("08", 10)) {
+ $ERROR('#1: parseInt("08") === parseInt("08", 10)');
+}
+
+//CHECK#2
+if (parseInt("09") !== parseInt("09", 10)) {
+ $ERROR('#2: parseInt("09") === parseInt("09", 10)');
+}
+
+//CHECK#3
+if (parseInt("010") !== parseInt("010", 10)) {
+ $ERROR('#3: parseInt("010") === parseInt("010", 10)');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.10.6.3_D1_T1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.10.6.3_D1_T1.js
new file mode 100644
index 000000000..40403f127
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.10.6.3_D1_T1.js
@@ -0,0 +1,22 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.10.6.3_D1_T1;
+* @section: 15.10.6.3;
+* @assertion: RegeExp.prototype.test calling does not change lastIndex property;
+*/
+
+__re = /ab|cd/g;
+
+__string = "zz zz ab zz zz";
+
+__re.test(__string);
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__re.lastIndex!==0) {
+ $ERROR('#1: RegeExp.prototype.test calling does not change lastIndex property');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.4.4.12_D1.5_T1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.4.4.12_D1.5_T1.js
new file mode 100644
index 000000000..97f2ad804
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.4.4.12_D1.5_T1.js
@@ -0,0 +1,51 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S15.4.4.12_D1.5_T1;
+ * @section: 15.4.4.12;
+ * @assertion: If a function is given fewer arguments than the function is
+ * specified to require, the function shall behave exactly as if it had been
+ * given sufficient additional arguments, each such argument being the
+ * undefined value;
+ * @description: no argument;
+*/
+
+var x = [0,1,2,3];
+var arr = x.splice();
+
+//CHECK#1
+arr.getClass = Object.prototype.toString;
+if (arr.getClass() !== "[object " + "Array" + "]") {
+ $ERROR('#1: var x = [0,1,2,3]; var arr = x.splice(); arr is Array object');
+}
+
+//CHECK#2
+if (arr.length !== 0) {
+ $ERROR('#2: var x = [0,1,2,3]; var arr = x.splice(); arr.length === 0');
+}
+
+//CHECK#3
+if (x.length !== 4) {
+ $ERROR('#3: var x = [0,1,2,3]; var arr = x.splice(); x.length === 4');
+}
+
+//CHECK#4
+if (x[0] !== 0) {
+ $ERROR('#4: var x = [0,1,2,3]; var arr = x.splice(); x[0] === 0');
+}
+
+//CHECK#5
+if (x[1] !== 1) {
+ $ERROR('#5: var x = [0,1,2,3]; var arr = x.splice(); x[1] === 1');
+}
+
+//CHECK#6
+if (x[2] !== 2) {
+ $ERROR('#6: var x = [0,1,2,3]; var arr = x.splice(); x[2] === 2');
+}
+
+//CHECK#7
+if (x[3] !== 3) {
+ $ERROR('#7: var x = [0,1,2,3]; var arr = x.splice(); x[3] === 3');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.4.4.12_D1.5_T2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.4.4.12_D1.5_T2.js
new file mode 100644
index 000000000..5c44d6402
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.4.4.12_D1.5_T2.js
@@ -0,0 +1,51 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S15.4.4.12_D1.5_T2;
+ * @section: 15.4.4.12;
+ * @assertion: If a function is given fewer arguments than the function is
+ * specified to require, the function shall behave exactly as if it had been
+ * given sufficient additional arguments, each such argument being the
+ * undefined value;
+ * @description: one argument;
+*/
+
+var x = [0,1,2,3];
+var arr = x.splice(1);
+
+//CHECK#1
+arr.getClass = Object.prototype.toString;
+if (arr.getClass() !== "[object " + "Array" + "]") {
+ $ERROR('#1: var x = [0,1,2,3]; var arr = x.splice(1); arr is Array object');
+}
+
+//CHECK#2
+if (arr.length !== 0) {
+ $ERROR('#2: var x = [0,1,2,3]; var arr = x.splice(1); arr.length === 0');
+}
+
+//CHECK#3
+if (x.length !== 4) {
+ $ERROR('#3: var x = [0,1,2,3]; var arr = x.splice(1); x.length === 4');
+}
+
+//CHECK#4
+if (x[0] !== 0) {
+ $ERROR('#4: var x = [0,1,2,3]; var arr = x.splice(1); x[0] === 0');
+}
+
+//CHECK#5
+if (x[1] !== 1) {
+ $ERROR('#5: var x = [0,1,2,3]; var arr = x.splice(1); x[1] === 1');
+}
+
+//CHECK#6
+if (x[2] !== 2) {
+ $ERROR('#6: var x = [0,1,2,3]; var arr = x.splice(1); x[2] === 2');
+}
+
+//CHECK#7
+if (x[3] !== 3) {
+ $ERROR('#7: var x = [0,1,2,3]; var arr = x.splice(1); x[3] === 3');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.2_D1_T1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.2_D1_T1.js
new file mode 100644
index 000000000..9f464f047
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.2_D1_T1.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.5.2_D1_T1;
+* @section: 15.5.2;
+* @assertion: String constructor can accept many arguments. But only the first will be accounted ;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+try {
+ __str__instance = new String(1,2,3);
+} catch (e) {
+ $FAIL('#1: String constructor can accept many arguments');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__str__instance != "1") {
+ $ERROR('#2: But only the first will be accounted');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.2_D1_T2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.2_D1_T2.js
new file mode 100644
index 000000000..2c208cf90
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.2_D1_T2.js
@@ -0,0 +1,31 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.5.2_D1_T2;
+* @section: 15.5.2;
+* @assertion: String constructor can accept many arguments. But only the first will be accounted ;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+try {
+ __str__instance = new String(null,"2",x);
+} catch (e) {
+ $FAIL('#1: String constructor can accept many arguments');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__str__instance != "null") {
+ $ERROR('#2: But only the first will be accounted');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var x;
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.2_D2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.2_D2.js
new file mode 100644
index 000000000..538c9f5eb
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.2_D2.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.5.2_D2;
+* @section: 15.5.2;
+* @assertion: String constructor can't accept many arguments. When more than one is provided exception throws ;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+try {
+ __str__instance = new String(1,2,3);
+ $FAIL('#1: When more than one is provided exception throws');
+} catch (e) {
+ $PRINT(e);
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T1.js
new file mode 100644
index 000000000..adb10cfca
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T1.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.5.4.11_D1.1_T1;
+* @section: 15.5.4.11;
+* @assertion: String.prototype.replace (searchValue, replaceValue) accepts only two arguments;
+* @negative;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+"".replace();
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T2.js
new file mode 100644
index 000000000..30398d3b2
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T2.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.5.4.11_D1.1_T2;
+* @section: 15.5.4.11;
+* @assertion: String.prototype.replace (searchValue, replaceValue) accepts only two arguments;
+* @negative;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+"".replace(new RegExp());
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T3.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T3.js
new file mode 100644
index 000000000..693bb9540
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T3.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.5.4.11_D1.1_T3;
+* @section: 15.5.4.11;
+* @assertion: String.prototype.replace (searchValue, replaceValue) accepts only two arguments;
+* @negative;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+"".replace("");
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T4.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T4.js
new file mode 100644
index 000000000..be7207d8c
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.5.4.11_D1.1_T4.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S15.5.4.11_D1.1_T4;
+* @section: 15.5.4.11;
+* @assertion: String.prototype.replace (searchValue, replaceValue) accepts only two arguments;
+* @negative;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+__2 = "1".replace("1","2",null, x);
+if (__2 !== "2") {
+ $ERROR('#1: String.prototype.replace (searchValue, replaceValue) accepts only two arguments');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var x;
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.7.4.5_A1.2_D02.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.7.4.5_A1.2_D02.js
new file mode 100644
index 000000000..2c10f26d4
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.7.4.5_A1.2_D02.js
@@ -0,0 +1,131 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S15.7.4.5_A1.2_D02;
+ * @section: 15.7.4.5;
+ * @assertion: If f < 0 or f > 20, throw a RangeError exception;
+ * @description: calling on Number object;
+*/
+
+//CHECK#2
+try{
+ s = (new Number(1)).toFixed(-1);
+ $ERROR('#2: (new Number(1)).toFixed(-1) should throw RangeError, see the diagnostics tests for this section');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#2: (new Number(1)).toFixed(-1) should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#3
+try{
+ s = (new Number(1)).toFixed(20.1);
+ $ERROR('#3: (new Number(1)).toFixed(20.1) should throw RangeError, see the diagnostics tests for this section');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#3: (new Number(1)).toFixed(20.1) should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#4
+try{
+ s = (new Number(1)).toFixed(21);
+ $ERROR('#4: (new Number(1)).toFixed(21) should throw RangeError, see the diagnostics tests for this section');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#4: (new Number(1)).toFixed(21) should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#5
+try{
+ s = (new Number(1)).toFixed(Number.POSITIVE_INFINITY);
+ $ERROR('#5: (new Number(1)).toFixed(Number.POSITIVE_INFINITY) should throw RangeError, see the diagnostics tests for this section');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#5: (new Number(1)).toFixed(Number.POSITIVE_INFINITY) should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#6
+try{
+ s = (new Number(1)).toFixed(Number.NEGATIVE_INFINITY);
+ $ERROR('#6: (new Number(1)).toFixed(Number.NEGATIVE_INFINITY) should throw RangeError, see the diagnostics tests for this section');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#6: (new Number(1)).toFixed(Number.NEGATIVE_INFINITY) should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#7
+try{
+ s = (new Number(1)).toFixed("-0.1");
+ $ERROR('#1: (new Number(1)).toFixed("-0.1") should throw RangeError, see the diagnostics tests for this section');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#1: (new Number(1)).toFixed("-0.1") should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#2
+try{
+ s = (new Number(1)).toFixed("-1");
+ $ERROR('#2: (new Number(1)).toFixed("-1") should throw RangeError, see the diagnostics tests for this section');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#2: (new Number(1)).toFixed("-1") should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#3
+try{
+ s = (new Number(1)).toFixed("20.1");
+ $ERROR('#3: (new Number(1)).toFixed("20.1") should throw RangeError, see the diagnostics tests for this section');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#3: (new Number(1)).toFixed("20.1") should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#4
+try{
+ s = (new Number(1)).toFixed(21);
+ $ERROR('#4: (new Number(1)).toFixed("21") should throw RangeError, see the diagnostics tests for this section');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#4: (new Number(1)).toFixed("21") should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#5
+try{
+ s = (new Number(1)).toFixed("Infinity");
+ $ERROR('#5: (new Number(1)).toFixed("Infinity") should throw RangeError, see the diagnostics tests for this section');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#5: (new Number(1)).toFixed("Infinity") should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#6
+try{
+ s = (new Number(1)).toFixed("-Infinity");
+ $ERROR('#6: (new Number(1)).toFixed("-Infinity") should throw RangeError, see the diagnostics tests for this section');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#6: (new Number(1)).toFixed("-Infinity") should throw RangeError, not the '+e);
+ }
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.7.4.5_D1.2_T01.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.7.4.5_D1.2_T01.js
new file mode 100644
index 000000000..414eb5b4f
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.7.4.5_D1.2_T01.js
@@ -0,0 +1,132 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S15.7.4.5_A1.2_D01;
+ * @section: 15.7.4.5;
+ * @assertion: If f < 0 or f > 20, throw a RangeError exception;
+ * @description: calling on Number prototype object;
+*/
+
+
+//CHECK#2
+try{
+ s = Number.prototype.toFixed(-1);
+ $ERROR('#2: Number.prototype.toFixed(-1) should throw RangeError');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#2: Number.prototype.toFixed(-1) should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#3
+try{
+ s = Number.prototype.toFixed(20.1);
+ $ERROR('#3: Number.prototype.toFixed(20.1) should throw RangeError');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#3: Number.prototype.toFixed(20.1) should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#4
+try{
+ s = Number.prototype.toFixed(21);
+ $ERROR('#4: Number.prototype.toFixed(21) should throw RangeError');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#4: Number.prototype.toFixed(21) should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#5
+try{
+ s = Number.prototype.toFixed(Number.POSITIVE_INFINITY);
+ $ERROR('#5: Number.prototype.toFixed(Number.POSITIVE_INFINITY) should throw RangeError');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#5: Number.prototype.toFixed(Number.POSITIVE_INFINITY) should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#6
+try{
+ s = Number.prototype.toFixed(Number.NEGATIVE_INFINITY);
+ $ERROR('#6: Number.prototype.toFixed(Number.NEGATIVE_INFINITY) should throw RangeError');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#6: Number.prototype.toFixed(Number.NEGATIVE_INFINITY) should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#7
+try{
+ s = Number.prototype.toFixed("-0.1");
+ $ERROR('#1: Number.prototype.toFixed("-0.1") should throw RangeError');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#1: Number.prototype.toFixed("-0.1") should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#2
+try{
+ s = Number.prototype.toFixed("-1");
+ $ERROR('#2: Number.prototype.toFixed("-1") should throw RangeError');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#2: Number.prototype.toFixed("-1") should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#3
+try{
+ s = Number.prototype.toFixed("20.1");
+ $ERROR('#3: Number.prototype.toFixed("20.1") should throw RangeError');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#3: Number.prototype.toFixed("20.1") should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#4
+try{
+ s = Number.prototype.toFixed(21);
+ $ERROR('#4: Number.prototype.toFixed("21") should throw RangeError');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#4: Number.prototype.toFixed("21") should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#5
+try{
+ s = Number.prototype.toFixed("Infinity");
+ $ERROR('#5: Number.prototype.toFixed("Infinity") should throw RangeError');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#5: Number.prototype.toFixed("Infinity") should throw RangeError, not the '+e);
+ }
+}
+
+//CHECK#6
+try{
+ s = Number.prototype.toFixed("-Infinity");
+ $ERROR('#6: Number.prototype.toFixed("-Infinity") should throw RangeError');
+}
+catch(e){
+ if(!(e instanceof RangeError)){
+ $ERROR('#6: Number.prototype.toFixed("-Infinity") should throw RangeError, not the '+e);
+ }
+}
+
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.9.1.14_D1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.9.1.14_D1.js
new file mode 100644
index 000000000..e1fdbde65
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S15.9.1.14_D1.js
@@ -0,0 +1,17 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S15.9.1.14_D1;
+ * @section: 15.9.1.14;
+ * @assertion: Return an implementation-dependent choice of either
+ * ToInteger(Result(2)) or ToInteger(Result(2)) + (+0);
+*/
+
+// CHECK#1
+var d = new Date(-0);
+if ( !( 1/d.valueOf() === Number.NEGATIVE_INFINITY) ) {
+ $PRINT('#1: TimeClip returns (ToInteger(value) + (+0))');
+} else {
+ $PRINT('#1: TimeClip returns (ToInteger(value))');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D1.1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D1.1.js
new file mode 100644
index 000000000..911cd5955
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D1.1.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S8.4_D1.1;
+* @section: 8.4, 15.5, 7.8.4;
+* @assertion: Engines implements array like access to string elemenths,
+* when we call squre brackets operator char at position specified returns
+*/
+
+var __str = 'hail to robots!!!';
+var str__='';
+for (ind = 0; ind < 17; ind++){
+ str__ += __str[ind];
+}
+if (str__ !== __str) {
+ $ERROR('When we call squre brackets operator char at position specified returns');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D1.2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D1.2.js
new file mode 100644
index 000000000..8eb6a1950
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D1.2.js
@@ -0,0 +1,35 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S8.4_D1.2;
+ * @section: 8.4, 7.8.4;
+ * @assertion: Some engines can implement array like access to string elemenths:
+ * Positions are indexed with nonnegative integers;
+*/
+
+str='asdfghjkl';
+
+////////////////////////////////////////////////////////////
+// CHECK#1
+if (str[0] !== 'a'){
+ $ERROR('#1: str="asdfghjkl";str[0]==="a"');
+}
+//
+/////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////
+// CHECK#2
+if (str[1] !== 's'){
+ $ERROR('#2: str="asdfghjkl";str[1]==="s"');
+}
+//
+/////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////
+// CHECK#3
+if (str[8] !== 'l'){
+ $ERROR('#3: str="asdfghjkl";str[8]==="l"');
+}
+//
+/////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.1.js
new file mode 100644
index 000000000..e51128899
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.1.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S8.4_D2.1;
+ * @section: 8.4, 15.5, 7.8.4;
+ * @assertion: Engines implements array like access to string elemenths,
+ * Index of element must be nonnegative;
+ * @negative;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+str='asdfghjkl';
+
+var element=str[-1];
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.2.js
new file mode 100644
index 000000000..34cd6288e
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.2.js
@@ -0,0 +1,19 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S8.4_D2.2;
+ * @section: 8.4, 15.5, 7.8.4;
+ * @assertion: Engines implements array like access to string elemenths,
+ * Index of elementh must be less than string length;
+ * @negative;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#
+str='asdfghjkl';
+
+var char__ =str[99];
+//
+//////////////////////////////////////////////////////////////////////////////
+
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.3.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.3.js
new file mode 100644
index 000000000..62f48a2b1
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.3.js
@@ -0,0 +1,25 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S8.4_D2.3;
+ * @section: 8.4, 15.5, 7.8.4;
+ * @assertion: Engines implements array like access to string elemenths,
+ * If index of elementh is greater or equals than string length an empty string returns;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#
+str='asdfghjkl';
+
+var char__ =str[99];
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (char__!== '') {
+ $ERROR('#1: If index of elementh is greater or equals than string length an emty string returns');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.4.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.4.js
new file mode 100644
index 000000000..fca63a1e7
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.4.js
@@ -0,0 +1,35 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S8.4_D2.4;
+ * @section: 8.4, 15.5, 7.8.4;
+ * @assertion: Engines implements array like access to string elemenths,
+ * If index of elementh is less than 0 an empty string returns;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#
+str='asdfghjkl';
+
+var char__ =str[-1];
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (char__!== '') {
+ $ERROR('#1: If index of elementh is less than 0 an emty string returns');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var __char =str[-5];
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__char!== '') {
+ $ERROR('#2: If index of elementh is less than 0 an emty string returns');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.5.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.5.js
new file mode 100644
index 000000000..8b91f05c6
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.5.js
@@ -0,0 +1,35 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S8.4_D2.5;
+ * @section: 8.4, 15.5, 7.8.4;
+ * @assertion: Engines implements array like access to string elemenths,
+ * If index of elementh is less than 0 an undefined returns;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#
+str='asdfghjkl';
+
+var char__ =str[-1];
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (typeof char__!== 'undefined') {
+ $ERROR('#1: If index of elementh is less than 0 an undefined returns');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var __char =str[-5];
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (typeof char__!== 'undefined') {
+ $ERROR('#2: If index of elementh is less than 0 an undefined returns');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.6.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.6.js
new file mode 100644
index 000000000..e47af6b0b
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.6.js
@@ -0,0 +1,25 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S8.4_D2.6;
+ * @section: 8.4, 15.5, 7.8.4;
+ * @assertion: Engines implements array like access to string elemenths,
+ * If index of elementh is greater or equals than string length an undefined returns;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#
+str='asdfghjkl';
+
+var char__ =str[99];
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (typeof char__!== 'undefined') {
+ $ERROR('#1: If index of elementh is greater or equals than string length an emty string returns');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.7.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.7.js
new file mode 100644
index 000000000..dc74ac2b0
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.4_D2.7.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * @name: S8.4_D2.7;
+ * @section: 8.4, 15.5, 7.8.4;
+ * @assertion: Engines implements array like access to string elemenths,
+ * If index of element must is equal to -1 an length of string returns;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+str='asdfghjkl';
+
+if (str[-1] !== 9) {
+ $ERROR('#1: If index of element must is equal to -1 an length of string returns');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+str='';
+
+if (str[-1] !== 0) {
+ $ERROR('#2: If index of element must is equal to -1 an length of string returns');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.1.js
new file mode 100644
index 000000000..3df6cceb3
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.1.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S8.6_D1.1;
+* @section: 8.6;
+* @assertion: An Object may have up to 4096 properties;
+* @description: Create 4096 properties of any Object;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+COUNT=4096;
+var props={};
+for (var i=0;i<COUNT;i++){
+ props['prop'+i]=i;
+}
+var result = true;
+for (var i=0;i<COUNT;i++){
+ if (props['prop'+i] !==i ) result = false;
+}
+if (result !== true) {
+ $ERROR('#1: An Object may have up to 4096 properties');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.2.js
new file mode 100644
index 000000000..4b9547fc6
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.2.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S8.6_D1.2;
+* @section: 8.6;
+* @assertion: An Object may have up to 16384 properties ;
+* @description: Create 16384 properties of any Object;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+COUNT=16384;
+var props={};
+for (var i=0;i<COUNT;i++){
+ props['prop'+i]=i;
+}
+var result = true;
+for (var i=0;i<COUNT;i++){
+ if (props['prop'+i] !==i ) result = false;
+}
+if (result !== true) {
+ $ERROR('#1: An Object may have up to 4096 properties');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.3.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.3.js
new file mode 100644
index 000000000..b04fbbc0f
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.3.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S8.6_D1.3;
+* @section: 8.6;
+* @assertion: An Object may have up to 65536 properties ;
+* @description: Create 65536 properties of any Object;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+COUNT=65536;
+var props={};
+for (var i=0;i<COUNT;i++){
+ props['prop'+i]=i;
+}
+var result = true;
+for (var i=0;i<COUNT;i++){
+ if (props['prop'+i] !==i ) result = false;
+}
+if (result !== true) {
+ $ERROR('#1: An Object may have up to 4096 properties');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.4.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.4.js
new file mode 100644
index 000000000..7552fb755
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.6_D1.4.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S8.6_D1.4;
+* @section: 8.6;
+* @assertion: An Object may have up to 262144 properties ;
+* @description: Create 262144 properties of any Object;
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+COUNT=262144;
+var props={};
+for (var i=0;i<COUNT;i++){
+ props['prop'+i]=i;
+}
+var result = true;
+for (var i=0;i<COUNT;i++){
+ if (props['prop'+i] !==i ) result = false;
+}
+if (result !== true) {
+ $ERROR('#1: An Object may have up to 4096 properties');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.8_D1.1.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.8_D1.1.js
new file mode 100644
index 000000000..b621db886
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.8_D1.1.js
@@ -0,0 +1,18 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S8.8_D1.1;
+* @section: 8.8;
+* @assertion: Arguments list may have up to 512 elements;
+* @description: Call function with 512 arguments;
+*/
+
+__mFunc=Function("return arguments.length;");
+
+if (__mFunc('8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type') !== 512) {
+ $ERROR('#1: Arguments list may have up to 512 elements');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.8_D1.2.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.8_D1.2.js
new file mode 100644
index 000000000..4058a6118
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.8_D1.2.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S8.8_D1.2;
+* @section: 8.8;
+* @assertion: Arguments list may have up to 2048 elements;
+* @description: Call function with 2048 arguments;
+*/
+
+__mFunc=Function("return arguments.length;");
+
+if (__mFunc('8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type') !== 2048) {
+ $ERROR('#1: Arguments list may have up to 2048 elements');
+}
diff --git a/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.8_D1.3.js b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.8_D1.3.js
new file mode 100644
index 000000000..ee9bbc2e5
--- /dev/null
+++ b/external/contributions/Google/sputniktests/tests/Implementation_Diagnostics/S8.8_D1.3.js
@@ -0,0 +1,78 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+* @name: S8.8_D1.3;
+* @section: 8.8;
+* @assertion: Arguments list may have up to 8192 elements;
+* @description: Call function with 8192 arguments;
+*/
+
+__mFunc=Function("return arguments.length;");
+
+if (__mFunc('8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type',
+'8','8','The','List','Type','The','internal','List','type','is','not','a','language','data','type','1','It','is','defined','by','this','specification','purely','for','expository','purposes','1','An','implementation','of','ECMAScript','must','behave','as','if','it','produced','and','operated','upon','List','values','in','the','manner','described','here','1','However','1','a','value','of','the','List','type','is','used','only','as','an','intermediate','result','of','expression','evaluation','and','cannot','be','stored','as','the','value','of','a','variable','or','property','1','The','List','type','is','used','to','explain','the','evaluation','of','argument','lists','(see','11','2','4)','in','new','expressions','and','in','function','calls','1','Values','of','the','List','type','are','simply','ordered','sequences','of','values','1','These','sequences','may','be','of','any','length','1','8','8','The','List','Type') !== 8192) {
+ $ERROR('#1: Arguments list may have up to 8192 elements');
+}