diff options
Diffstat (limited to 'external/contributions/Google/sputniktests/tests/Implementation_Diagnostics')
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'); +} |