This commit is contained in:
Mark Miller 2011-09-25 12:09:18 -07:00
commit d1f98e1059
299 changed files with 0 additions and 17796 deletions

View File

@ -1,20 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
var HoursPerDay = 24;
var MinutesPerHour = 60;
var SecondsPerMinute = 60;
var msPerDay = 86400000;
var msPerSecond = 1000;
var msPerMinute = 60000;
var msPerHour = 3600000;
var date_1899_end = -2208988800001;
var date_1900_start = -2208988800000;
var date_1969_end = -1;
var date_1970_start = 0;
var date_1999_end = 946684799999;
var date_2000_start = 946684800000;
var date_2099_end = 4102444799999;
var date_2100_start = 4102444800000;

View File

@ -1,326 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
//15.9.1.2 Day Number and Time within Day
function Day(t) {
return Math.floor(t/msPerDay);
}
function TimeWithinDay(t) {
return t%msPerDay;
}
//15.9.1.3 Year Number
function DaysInYear(y){
if(y%4 != 0) return 365;
if(y%4 == 0 && y%100 != 0) return 366;
if(y%100 == 0 && y%400 != 0) return 365;
if(y%400 == 0) return 366;
}
function DayFromYear(y) {
return (365*(y-1970)
+ Math.floor((y-1969)/4)
- Math.floor((y-1901)/100)
+ Math.floor((y-1601)/400));
}
function TimeFromYear(y){
return msPerDay*DayFromYear(y);
}
function YearFromTime(t) {
t = Number(t);
var sign = ( t < 0 ) ? -1 : 1;
var year = ( sign < 0 ) ? 1969 : 1970;
for(var time = 0;;year += sign){
time = TimeFromYear(year);
if(sign > 0 && time > t){
year -= sign;
break;
}
else if(sign < 0 && time <= t){
break;
}
};
return year;
}
function InLeapYear(t){
if(DaysInYear(YearFromTime(t)) == 365)
return 0;
if(DaysInYear(YearFromTime(t)) == 366)
return 1;
}
function DayWithinYear(t) {
return Day(t)-DayFromYear(YearFromTime(t));
}
//15.9.1.4 Month Number
function MonthFromTime(t){
var day = DayWithinYear(t);
var leap = InLeapYear(t);
if((0 <= day) && (day < 31)) return 0;
if((31 <= day) && (day < (59+leap))) return 1;
if(((59+leap) <= day) && (day < (90+leap))) return 2;
if(((90+leap) <= day) && (day < (120+leap))) return 3;
if(((120+leap) <= day) && (day < (151+leap))) return 4;
if(((151+leap) <= day) && (day < (181+leap))) return 5;
if(((181+leap) <= day) && (day < (212+leap))) return 6;
if(((212+leap) <= day) && (day < (243+leap))) return 7;
if(((243+leap) <= day) && (day < (273+leap))) return 8;
if(((273+leap) <= day) && (day < (304+leap))) return 9;
if(((304+leap) <= day) && (day < (334+leap))) return 10;
if(((334+leap) <= day) && (day < (365+leap))) return 11;
}
//15.9.1.5 Date Number
function DateFromTime(t) {
var day = DayWithinYear(t);
var month = MonthFromTime(t);
var leap = InLeapYear(t);
if(month == 0) return day+1;
if(month == 1) return day-30;
if(month == 2) return day-58-leap;
if(month == 3) return day-89-leap;
if(month == 4) return day-119-leap;
if(month == 5) return day-150-leap;
if(month == 6) return day-180-leap;
if(month == 7) return day-211-leap;
if(month == 8) return day-242-leap;
if(month == 9) return day-272-leap;
if(month == 10) return day-303-leap;
if(month == 11) return day-333-leap;
}
//15.9.1.6 Week Day
function WeekDay(t) {
var weekday = (Day(t)+4)%7;
return (weekday < 0 ? 7+weekday : weekday);
}
//15.9.1.9 Daylight Saving Time Adjustment
var LocalTZA = $LocalTZ*msPerHour;
function DaysInMonth(m, leap) {
m = m%12;
//April, June, Sept, Nov
if(m == 3 || m == 5 || m == 8 || m == 10 ) {
return 30;
}
//Jan, March, May, July, Aug, Oct, Dec
if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
return 31;
}
//Feb
return 28+leap;
}
function GetSundayInMonth(t, m, count){
var year = YearFromTime(t);
var leap = InLeapYear(t);
var day = 0;
if(m >= 1) day += DaysInMonth(0, leap);
if(m >= 2) day += DaysInMonth(1, leap);
if(m >= 3) day += DaysInMonth(2, leap);
if(m >= 4) day += DaysInMonth(3, leap);
if(m >= 5) day += DaysInMonth(4, leap);
if(m >= 6) day += DaysInMonth(5, leap);
if(m >= 7) day += DaysInMonth(6, leap);
if(m >= 8) day += DaysInMonth(7, leap);
if(m >= 9) day += DaysInMonth(8, leap);
if(m >= 10) day += DaysInMonth(9, leap);
if(m >= 11) day += DaysInMonth(10, leap);
var month_start = TimeFromYear(year)+day*msPerDay;
var sunday = 0;
if(count === "last"){
for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay;
WeekDay(last_sunday)>0;
last_sunday -= msPerDay
){};
sunday = last_sunday;
}
else {
for(var first_sunday = month_start;
WeekDay(first_sunday)>0;
first_sunday += msPerDay
){};
sunday = first_sunday+7*msPerDay*(count-1);
}
return sunday;
}
function DaylightSavingTA(t) {
t = t-LocalTZA;
var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+$DST_start_hour*msPerHour
+$DST_start_minutes*msPerMinute;
var k = new Date(DST_start);
var DST_end = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+$DST_end_hour*msPerHour
+$DST_end_minutes*msPerMinute;
if ( t >= DST_start && t < DST_end ) {
return msPerHour;
} else {
return 0;
}
}
//15.9.1.9 Local Time
function LocalTime(t){
return t+LocalTZA+DaylightSavingTA(t);
}
function UTC(t) {
return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
}
//15.9.1.10 Hours, Minutes, Second, and Milliseconds
function HourFromTime(t){
return Math.floor(t/msPerHour)%HoursPerDay;
}
function MinFromTime(t){
return Math.floor(t/msPerMinute)%MinutesPerHour;
}
function SecFromTime(t){
return Math.floor(t/msPerSecond)%SecondsPerMinute;
}
function msFromTime(t){
return t%msPerSecond;
}
//15.9.1.11 MakeTime (hour, min, sec, ms)
function MakeTime(hour, min, sec, ms){
if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
return Number.NaN;
}
hour = ToInteger(hour);
min = ToInteger(min);
sec = ToInteger(sec);
ms = ToInteger(ms);
return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
}
//15.9.1.12 MakeDay (year, month, date)
function MakeDay(year, month, date) {
if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
return Number.NaN;
}
year = ToInteger(year);
month = ToInteger(month);
date = ToInteger(date );
var result5 = year + Math.floor(month/12);
var result6 = month%12;
var sign = ( year < 1970 ) ? -1 : 1;
var t = ( year < 1970 ) ? 1 : 0;
var y = ( year < 1970 ) ? 1969 : 1970;
if( sign == -1 ){
for ( y = 1969; y >= year; y += sign ) {
t += sign * DaysInYear(y)*msPerDay;
}
} else {
for ( y = 1970 ; y < year; y += sign ) {
t += sign * DaysInYear(y)*msPerDay;
}
}
var leap = 0;
for ( var m = 0; m < month; m++ ) {
//if year is changed, than we need to recalculate leep
leap = InLeapYear(t);
t += DaysInMonth(m, leap)*msPerDay;
}
if ( YearFromTime(t) != result5 ) {
return Number.NaN;
}
if ( MonthFromTime(t) != result6 ) {
return Number.NaN;
}
if ( DateFromTime(t) != 1 ) {
return Number.NaN;
}
return Day(t)+date-1;
}
//15.9.1.13 MakeDate (day, time)
function MakeDate( day, time ) {
if(!isFinite(day) || !isFinite(time)) {
return Number.NaN;
}
return day*msPerDay+time;
}
//15.9.1.14 TimeClip (time)
function TimeClip(time) {
if(!isFinite(time) || Math.abs(time) > 8.64e15){
return Number.NaN;
}
return ToInteger(time);
}
//Test Functions
function ConstructDate(year, month, date, hours, minutes, seconds, ms){
/*
* 1. Call ToNumber(year)
* 2. Call ToNumber(month)
* 3. If date is supplied use ToNumber(date); else use 1
* 4. If hours is supplied use ToNumber(hours); else use 0
* 5. If minutes is supplied use ToNumber(minutes); else use 0
* 6. If seconds is supplied use ToNumber(seconds); else use 0
* 7. If ms is supplied use ToNumber(ms); else use 0
* 8. If Result(1) is not NaN and 0 <= ToInteger(Result(1)) <= 99, Result(8) is
* 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
* 9. Compute MakeDay(Result(8), Result(2), Result(3))
* 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
* 11. Compute MakeDate(Result(9), Result(10))
* 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
*/
var r1 = Number(year);
var r2 = Number(month);
var r3 = ((date && arguments.length > 2) ? Number(date) : 1);
var r4 = ((hours && arguments.length > 3) ? Number(hours) : 0);
var r5 = ((minutes && arguments.length > 4) ? Number(minutes) : 0);
var r6 = ((seconds && arguments.length > 5) ? Number(seconds) : 0);
var r7 = ((ms && arguments.length > 6) ? Number(ms) : 0);
var r8 = r1;
if(!isNaN(r1) && (0 <= ToInteger(r1)) && (ToInteger(r1) <= 99))
r8 = 1900+r1;
var r9 = MakeDay(r8, r2, r3);
var r10 = MakeTime(r4, r5, r6, r7);
var r11 = MakeDate(r9, r10);
return TimeClip(UTC(r11));
}

View File

@ -1,13 +0,0 @@
// 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"');
}

View File

@ -1,13 +0,0 @@
// 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"');
}

View File

@ -1,47 +0,0 @@
// 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;
}

View File

@ -1,27 +0,0 @@
// 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;};

View File

@ -1,35 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,40 +0,0 @@
// 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) {
;
}

View File

@ -1,43 +0,0 @@
// 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) {
;
}

View File

@ -1,45 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,47 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,52 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,65 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,27 +0,0 @@
// 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');
}
}

View File

@ -1,27 +0,0 @@
// 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');
}
}

View File

@ -1,69 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////
}

View File

@ -1,37 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,50 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,50 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,53 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,30 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,31 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,48 +0,0 @@
// 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 ');
}
//
//////////////////////////////////////////////////////////////////////////////
}

View File

@ -1,24 +0,0 @@
// 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)');
}

View File

@ -1,24 +0,0 @@
// 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)');
}

View File

@ -1,22 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,51 +0,0 @@
// 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');
}

View File

@ -1,51 +0,0 @@
// 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');
}

View File

@ -1,29 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,31 +0,0 @@
// 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;

View File

@ -1,20 +0,0 @@
// 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);
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,15 +0,0 @@
// 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();
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,15 +0,0 @@
// 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());
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,15 +0,0 @@
// 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("");
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,20 +0,0 @@
// 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;

View File

@ -1,131 +0,0 @@
// 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);
}
}

View File

@ -1,132 +0,0 @@
// 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);
}
}

View File

@ -1,17 +0,0 @@
// 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))');
}

View File

@ -1,18 +0,0 @@
// 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');
}

View File

@ -1,35 +0,0 @@
// 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"');
}
//
/////////////////////////////////////////////////////////////

View File

@ -1,18 +0,0 @@
// 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];
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,19 +0,0 @@
// 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];
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,25 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,35 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,35 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,25 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,29 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,26 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,26 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,26 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,26 +0,0 @@
// 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');
}
//
//////////////////////////////////////////////////////////////////////////////

View File

@ -1,18 +0,0 @@
// 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');
}

View File

@ -1,30 +0,0 @@
// 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');
}

View File

@ -1,78 +0,0 @@
// 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');
}

View File

@ -1,23 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S11.13.2_R2.3_T1;
* @section: 11.13.2;
* @description: Result is not ToNumber(Undefined) * ToNumber(AssignmentExpression);
*/
//CHECK#1
try {
x *= new String("-1");
if (isNaN(x) === true) {
$ERROR('#1: Result is not ToNumber32(Undefined) * ToNumber32(AssignmentExpression)');
} else {
$ERROR('#1: x *= new String("-1") throw ReferenceError');
}
}
catch (e) {
if ((e instanceof ReferenceError) !== true) {
$ERROR('#1: x *= new String("-1") throw ReferenceError');
}
}

View File

@ -1,23 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S11.13.2_R2.3_T10;
* @section: 11.13.2;
* @description: Result is not ToInt32(Undefined) ^ ToInt32(AssignmentExpression);
*/
//CHECK#1
try {
x ^= new String("-1");
if (x === -1) {
$ERROR('#1: Result is not ToInt32(Undefined) ^ ToInt32(AssignmentExpression)');
} else {
$ERROR('#1: x ^= new String("-1") throw ReferenceError');
}
}
catch (e) {
if ((e instanceof ReferenceError) !== true) {
$ERROR('#1: x ^= new String("-1") throw ReferenceError');
}
}

View File

@ -1,23 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S11.13.2_R2.3_T11;
* @section: 11.13.2;
* @description: Result is not ToInt32(Undefined) | ToInt32(AssignmentExpression);
*/
//CHECK#1
try {
x |= new String("-1");
if (x === -1) {
$ERROR('#1: Result is not ToInt32(Undefined) | ToInt32(AssignmentExpression)');
} else {
$ERROR('#1: x |= new String("-1") throw ReferenceError');
}
}
catch (e) {
if ((e instanceof ReferenceError) !== true) {
$ERROR('#1: x |= new String("-1") throw ReferenceError');
}
}

View File

@ -1,23 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S11.13.2_R2.3_T2;
* @section: 11.13.2;
* @description: Result is not ToNumber(Undefined) / ToNumber(AssignmentExpression);
*/
//CHECK#1
try {
x /= new String("-1");
if (isNaN(x) === true) {
$ERROR('#1: Result is not ToNumber32(Undefined) / ToNumber32(AssignmentExpression)');
} else {
$ERROR('#1: x /= new String("-1") throw ReferenceError');
}
}
catch (e) {
if ((e instanceof ReferenceError) !== true) {
$ERROR('#1: x /= new String("-1") throw ReferenceError');
}
}

View File

@ -1,23 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S11.13.2_R2.3_T3;
* @section: 11.13.2;
* @description: Result is not ToNumber(Undefined) % ToNumber(AssignmentExpression);
*/
//CHECK#1
try {
x %= new String("-1");
if (isNaN(x) === true) {
$ERROR('#1: Result is not ToNumber32(Undefined) % ToNumber32(AssignmentExpression)');
} else {
$ERROR('#1: x %= new String("-1") throw ReferenceError');
}
}
catch (e) {
if ((e instanceof ReferenceError) !== true) {
$ERROR('#1: x %= new String("-1") throw ReferenceError');
}
}

View File

@ -1,23 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S11.13.2_R2.3_T4;
* @section: 11.13.2;
* @description: Result is not ToNumber(Undefined) + ToNumber(AssignmentExpression);
*/
//CHECK#1
try {
x += new String("-1");
if (isNaN(x) === true) {
$ERROR('#1: Result is not ToNumber32(Undefined) + ToNumber32(AssignmentExpression)');
} else {
$ERROR('#1: x += new String("-1") throw ReferenceError');
}
}
catch (e) {
if ((e instanceof ReferenceError) !== true) {
$ERROR('#1: x += new String("-1") throw ReferenceError');
}
}

View File

@ -1,24 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S11.13.2_R2.3_T5;
* @section: 11.13.2;
* @description: Result is not ToNumber(Undefined) - ToNumber(AssignmentExpression);
*/
//CHECK#1
try {
x -= new String("-1");
if (isNaN(x) === true) {
$ERROR('#1: Result is not ToNumber32(Undefined) - ToNumber32(AssignmentExpression)');
} else {
$ERROR('#1: x -= new String("-1") throw ReferenceError');
}
}
catch (e) {
if ((e instanceof ReferenceError) !== true) {
$ERROR('#1: x -= new String("-1") throw ReferenceError');
}
}

View File

@ -1,23 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S11.13.2_R2.3_T6;
* @section: 11.13.2;
* @description: Result is not ToInt32(Undefined) << ToInt32(AssignmentExpression);
*/
//CHECK#1
try {
x <<= new String("-1");
if (x === 0) {
$ERROR('#1: Result is not ToInt32(Undefined) << ToInt32(AssignmentExpression)');
} else {
$ERROR('#1: x <<= new String("-1") throw ReferenceError');
}
}
catch (e) {
if ((e instanceof ReferenceError) !== true) {
$ERROR('#1: x <<= new String("-1") throw ReferenceError');
}
}

View File

@ -1,23 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S11.13.2_R2.3_T7;
* @section: 11.13.2;
* @description: Result is not ToInt32(Undefined) >> ToInt32(AssignmentExpression);
*/
//CHECK#1
try {
x >>= new String("-1");
if (x === 0) {
$ERROR('#1: Result is not ToInt32(Undefined) >> ToInt32(AssignmentExpression)');
} else {
$ERROR('#1: x >>= new String("-1") throw ReferenceError');
}
}
catch (e) {
if ((e instanceof ReferenceError) !== true) {
$ERROR('#1: x >>= new String("-1") throw ReferenceError');
}
}

View File

@ -1,23 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S11.13.2_R2.3_T8;
* @section: 11.13.2;
* @description: Result is not ToInt32(Undefined) >>> ToInt32(AssignmentExpression);
*/
//CHECK#1
try {
x >>>= new String("-1");
if (x === 0) {
$ERROR('#1: Result is not ToInt32(Undefined) >>> ToInt32(AssignmentExpression)');
} else {
$ERROR('#1: x >>>= new String("-1") throw ReferenceError');
}
}
catch (e) {
if ((e instanceof ReferenceError) !== true) {
$ERROR('#1: x >>>= new String("-1") throw ReferenceError');
}
}

View File

@ -1,23 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S11.13.2_R2.3_T9;
* @section: 11.13.2;
* @description: Result is not ToInt32(Undefined) & ToInt32(AssignmentExpression);
*/
//CHECK#1
try {
x &= new String("-1");
if (x === 0) {
$ERROR('#1: Result is not ToInt32(Undefined) & ToInt32(AssignmentExpression)');
} else {
$ERROR('#1: x &= new String("-1") throw ReferenceError');
}
}
catch (e) {
if ((e instanceof ReferenceError) !== true) {
$ERROR('#1: x &= new String("-1") throw ReferenceError');
}
}

View File

@ -1,45 +0,0 @@
// 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_R1;
* @section: 12.6.4, 9.9;
* @description: The for-in statement must not throw TypeError for undefined
* values, cause it's a bug in the Standard;
*/
// CHECK#1
try{
var x1 = 1;
for(var y1 in undefined) x1 = 2;
if (x1 === 1) {
$PRINT("#1: passed");
} else {
$ERROR("#1: The for-in statement must not fullfill, the value was changed");
}
}
catch(e){
if(e instanceof TypeError){
$ERROR("#1: The for-in statement must not throw TypeError for undefined values, cause it's a bug in the Standard");
} else {
$ERROR("#1: The for-in statement must not throw Error for undefined values, cause it's a bug in the Standard");
}
}
// CHECK#2
try{
var x2 = 1;
for(var y2 in this.foo) x2 = 2;
if (x2 === 1) {
$PRINT("#1: passed");
} else {
$ERROR("#1: The for-in statement must not fullfill, the value was changed");
}
}
catch(e){
if(e instanceof TypeError){
$ERROR("#1: The for-in statement must not throw TypeError for undefined values, cause it's a bug in the Standard");
} else {
$ERROR("#1: The for-in statement must not throw Error for undefined values, cause it's a bug in the Standard");
}
}

View File

@ -1,45 +0,0 @@
// 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_R2;
* @section: 12.6.4, 9.9;
* @description: The for-in statement must not throw TypeError for null
* values, cause it's a bug in the Standard;
*/
// CHECK#1
try{
var x1 = 1;
for(var y1 in null) x1 = 2;
if (x1 === 1) {
$PRINT("#1: passed");
} else {
$ERROR("#1: The for-in statement must not fullfill, the value was changed");
}
}
catch(e){
if(e instanceof TypeError){
$ERROR("#1: The for-in statement must not throw TypeError for null values, cause it's a bug in the Standard");
} else {
$ERROR("#1: The for-in statement must not throw Error for null values, cause it's a bug in the Standard");
}
}
// CHECK#2
try{
var x2 = 1;
for(var y2 in 'bbb'.match(/aaa/)) x2 = 2;
if (x2 === 1) {
$PRINT("#1: passed");
} else {
$ERROR("#1: The for-in statement must not fullfill, the value was changed");
}
}
catch(e){
if(e instanceof TypeError){
$ERROR("#1: The for-in statement must not throw TypeError for null values, cause it's a bug in the Standard");
} else {
$ERROR("#1: The for-in statement must not throw Error for null values, cause it's a bug in the Standard");
}
}

View File

@ -1,19 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.1.1.1_R1;
* @section: 15.1.1.1, 9.3;
* @description: The NaN is not ReadOnly, check Number for resettability of result;
*/
// CHECK#1
NaN = true;
Number();
if (NaN !== true) {
NaN = true;
Number();
if (NaN === true) {
$ERROR('#1: Resettability of result');
}
}

View File

@ -1,14 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.1.1.1_R2.1;
* @section: 15.1.1.1, 15.1.2, 15.1.3;
* @description: The NaN is not ReadOnly, check isNaN Functions that use ToNumber;
*/
// CHECK#1
NaN = 1;
if (isNaN(NaN) !== false) {
$ERROR('#1: NaN = 1; isNaN(NaN) === false');
}

View File

@ -1,14 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.1.1.1_R2.2;
* @section: 15.1.1.1, 15.1.2, 15.1.3;
* @description: The NaN is not ReadOnly, check isFinite Functions that use ToNumber;
*/
// CHECK#1
NaN = 1;
if (isFinite(NaN) !== true) {
$ERROR('#1: NaN = 1; isFinite(NaN) === true');
}

View File

@ -1,19 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.1.1.1_R3.1;
* @section: 15.1.1.1, 15.1.2.4;
* @description: The NaN is not ReadOnly, check isNaN for resettability of result;
*/
// CHECK#1
NaN = 1;
isNaN();
if (NaN !== 1) {
NaN = 1;
isNaN();
if (NaN === 1) {
$ERROR('#1: isNaN resettability of result for NaN value');
}
}

View File

@ -1,19 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.1.1.1_R3.2;
* @section: 15.1.1.1, 15.1.2.4;
* @description: The NaN is not ReadOnly, check isFinite for resettability of result
*/
// CHECK#1
NaN = 1;
isFinite();
if (NaN !== 1) {
NaN = 1;
isFinite();
if (NaN === 1) {
$ERROR('#1: isFinite resettability of result for NaN value');
}
}

View File

@ -1,140 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.1.1.1_R4;
* @section: 15.1.1.1, 11;
* @description: The NaN is not ReadOnly, check Operators that use ToNumber;
*/
// CHECK#1
NaN = true;
NaN++;
if (NaN !== 2) {
$ERROR('#1: NaN = true; NaN++; NaN === 2');
}
// CHECK#2
NaN = true;
NaN--;
if (NaN !== 0) {
$ERROR('#2: NaN = true; NaN--; NaN === 0');
}
// CHECK#3
NaN = true;
++NaN;
if (NaN !== 2) {
$ERROR('#3: NaN = true; ++NaN; NaN === 2');
}
// CHECK#4
NaN = true;
--NaN;
if (NaN !== 0) {
$ERROR('#4: NaN = true; --NaN; NaN === 0');
}
// CHECK#5
NaN = true;
+NaN;
if (NaN !== true) {
$ERROR('#5: NaN = true; +NaN; NaN === true');
}
// CHECK#6
NaN = true;
-NaN;
if (NaN !== true) {
$ERROR('#6: NaN = true; -NaN; NaN === true');
}
// CHECK#7
NaN = true;
NaN * 1;
if (NaN !== true) {
$ERROR('#7: NaN = true; NaN * 1; NaN === true');
}
// CHECK#8
NaN = true;
NaN / 1;
if (NaN !== true) {
$ERROR('#8: NaN = true; NaN / 1; NaN === true');
}
// CHECK#9
NaN = true;
NaN % 1;
if (NaN !== true) {
$ERROR('#9: NaN = true; NaN % 1; NaN === true');
}
// CHECK#10
NaN = true;
NaN + 1;
if (NaN !== true) {
$ERROR('#10: NaN = true; NaN + 1; NaN === true');
}
// CHECK#11
NaN = true;
NaN - 1;
if (NaN !== true) {
$ERROR('#11: NaN = true; NaN - 1; NaN === true');
}
// CHECK#12
NaN = true;
NaN > 1;
if (NaN !== true) {
$ERROR('#12: NaN = true; NaN > 1; NaN === true');
}
// CHECK#13
NaN = true;
NaN < 1;
if (NaN !== true) {
$ERROR('#13: NaN = true; NaN < 1; NaN === true');
}
// CHECK#14
NaN = true;
NaN >= 1;
if (NaN !== true) {
$ERROR('#14: NaN = true; NaN >= 1; NaN === true');
}
// CHECK#15
NaN = true;
NaN <= 1;
if (NaN !== true) {
$ERROR('#15: NaN = true; NaN <= 1; NaN === true');
}
// CHECK#16
NaN = true;
NaN == true;
if (NaN !== true) {
$ERROR('#16: NaN = true; NaN == true; NaN === true');
}
// CHECK#17
NaN = true;
NaN != 1;
if (NaN !== true) {
$ERROR('#17: NaN = true; NaN != 1; NaN === true');
}
// CHECK#18
NaN = true;
NaN === true;
if (NaN !== true) {
$ERROR('#18: NaN = true; NaN === true; NaN === true');
}
// CHECK#19
NaN = true;
NaN !== true;
if (NaN !== true) {
$ERROR('#19: NaN = true; NaN !== true; NaN === true');
}

View File

@ -1,19 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.1.1.2_R1;
* @section: 15.1.1.2, 9.3;
* @description: The Infinity is not ReadOnly, check Number for resettability of result;
*/
// CHECK#1
Infinity = false;
Number();
if (Infinity !== false) {
Infinity = false;
Number();
if (Infinity === false) {
$ERROR('#1: Resettability of result');
}
}

View File

@ -1,14 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.1.1.2_R2.1;
* @section: 15.1.1.2, 15.1.2, 15.1.3;
* @description: The Infinity is not ReadOnly, check isNaN Functions that use ToNumber;
*/
// CHECK#1
Infinity = "string";
if (isNaN(Infinity) !== true) {
$ERROR('#1: Infinity = "string"; isNaN(Infinity) === true');
}

View File

@ -1,14 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.1.1.2_R2.2;
* @section: 15.1.1.2, 15.1.2, 15.1.3;
* @description: The Infinity is not ReadOnly, check isFinite Functions that use ToNumber;
*/
// CHECK#1
Infinity = 0;
if (isFinite(Infinity) !== true) {
$ERROR('#1: Infinity = 0; isFinite(Infinity) === true');
}

View File

@ -1,19 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.1.1.2_R3.1;
* @section: 15.1.1.2, 15.1.2.4;
* @description: The Infinity is not ReadOnly, check isNaN for resettability of result;
*/
// CHECK#1
Infinity = "0";
isNaN();
if (Infinity !== "0") {
Infinity = "0";
isNaN();
if (Infinity === "0") {
$ERROR('#1: isNaN resettability of result for Infinity value');
}
}

View File

@ -1,19 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.1.1.2_R3.2;
* @section: 15.1.1.2, 15.1.2.4;
* @description: The Infinity is not ReadOnly, check isFinite for resettability of result
*/
// CHECK#1
Infinity = 0;
isFinite();
if (Infinity !== 0) {
Infinity = 0;
isFinite();
if (Infinity === 0) {
$ERROR('#1: isFinite resettability of result for Infinity value');
}
}

View File

@ -1,140 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.1.1.2_R4;
* @section: 15.1.1.2, 11;
* @description: The Infinity is not ReadOnly, check Operators that use ToNumber;
*/
// CHECK#1
Infinity = true;
Infinity++;
if (Infinity !== 2) {
$ERROR('#1: Infinity = true; Infinity++; Infinity === 2');
}
// CHECK#2
Infinity = true;
Infinity--;
if (Infinity !== 0) {
$ERROR('#2: Infinity = true; Infinity--; Infinity === 0');
}
// CHECK#3
Infinity = true;
++Infinity;
if (Infinity !== 2) {
$ERROR('#3: Infinity = true; ++Infinity; Infinity === 2');
}
// CHECK#4
Infinity = true;
--Infinity;
if (Infinity !== 0) {
$ERROR('#4: Infinity = true; --Infinity; Infinity === 0');
}
// CHECK#5
Infinity = true;
+Infinity;
if (Infinity !== true) {
$ERROR('#5: Infinity = true; +Infinity; Infinity === true');
}
// CHECK#6
Infinity = true;
-Infinity;
if (Infinity !== true) {
$ERROR('#6: Infinity = true; -Infinity; Infinity === true');
}
// CHECK#7
Infinity = true;
Infinity * 1;
if (Infinity !== true) {
$ERROR('#7: Infinity = true; Infinity * 1; Infinity === true');
}
// CHECK#8
Infinity = true;
Infinity / 1;
if (Infinity !== true) {
$ERROR('#8: Infinity = true; Infinity / 1; Infinity === true');
}
// CHECK#9
Infinity = true;
Infinity % 1;
if (Infinity !== true) {
$ERROR('#9: Infinity = true; Infinity % 1; Infinity === true');
}
// CHECK#10
Infinity = true;
Infinity + 1;
if (Infinity !== true) {
$ERROR('#10: Infinity = true; Infinity + 1; Infinity === true');
}
// CHECK#11
Infinity = true;
Infinity - 1;
if (Infinity !== true) {
$ERROR('#11: Infinity = true; Infinity - 1; Infinity === true');
}
// CHECK#12
Infinity = true;
Infinity > 1;
if (Infinity !== true) {
$ERROR('#12: Infinity = true; Infinity > 1; Infinity === true');
}
// CHECK#13
Infinity = true;
Infinity < 1;
if (Infinity !== true) {
$ERROR('#13: Infinity = true; Infinity < 1; Infinity === true');
}
// CHECK#14
Infinity = true;
Infinity >= 1;
if (Infinity !== true) {
$ERROR('#14: Infinity = true; Infinity >= 1; Infinity === true');
}
// CHECK#15
Infinity = true;
Infinity <= 1;
if (Infinity !== true) {
$ERROR('#15: Infinity = true; Infinity <= 1; Infinity === true');
}
// CHECK#16
Infinity = true;
Infinity == true;
if (Infinity !== true) {
$ERROR('#16: Infinity = true; Infinity == true; Infinity === true');
}
// CHECK#17
Infinity = true;
Infinity != 1;
if (Infinity !== true) {
$ERROR('#17: Infinity = true; Infinity != 1; Infinity === true');
}
// CHECK#18
Infinity = true;
Infinity === true;
if (Infinity !== true) {
$ERROR('#18: Infinity = true; Infinity === true; Infinity === true');
}
// CHECK#19
Infinity = true;
Infinity !== true;
if (Infinity !== true) {
$ERROR('#19: Infinity = true; Infinity !== true; Infinity === true');
}

View File

@ -1 +0,0 @@
Taken from Sputnik's Subversion repository on 2010_09_08 (trunk).

View File

@ -1,57 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.10.2.12_A1_T6;
* @section: 15.10.2.12, 7.2, 7.3;
* @assertion: The production CharacterClassEscape :: s evaluates by returning the set of characters
* containing the characters that are on the right-hand side of the WhiteSpace (7.2) or LineTerminator (7.3) productions;
* @description: Complex test;
*/
//CHECK#1
var regexp_s = /\s/;
Zs = [[0x2000, 0x200B], [0x3000, 0x3000]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Zs.length; indexI++) {
for (indexJ = Zs[indexI][0]; indexJ <= Zs[indexI][1]; indexJ++) {
var str = String.fromCharCode(indexJ);
var arr = regexp_s.exec(str);
if ((arr === null) || (arr[0] !== str)) {
var hex = decimalToHexString(indexJ);
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

View File

@ -1,56 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.10.2.12_A2_T6;
* @section: 15.10.2.12, 7.2, 7.3;
* @assertion: The production CharacterClassEscape :: S evaluates by returning
* the set of all characters not included in the set returned by
* CharacterClassEscape :: s;
* @description: Complex test;
*/
//CHECK#1
var regexp_S = /\S/;
Zs = [[0x2000, 0x200B], [0x3000, 0x3000]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Zs.length; indexI++) {
for (indexJ = Zs[indexI][0]; indexJ <= Zs[indexI][1]; indexJ++) {
if (regexp_S.exec(String.fromCharCode(indexJ)) !== null) {
var hex = decimalToHexString(indexJ);
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

File diff suppressed because one or more lines are too long

View File

@ -1,57 +0,0 @@
// 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.16_A2;
* @section: 15.5.4.16;
* @assertion: The characters in SpecialCasings.txt are converted by multi-character results;
* @description: Complex test;
*/
//CHECK
LowerSpecialCase = [["\u03A3", "\u03C2"]];
errorCount = 0;
count = 0;
for (index = 0; index < LowerSpecialCase.length; index++) {
var capitalI = LowerSpecialCase[index][0];
var capitalS = String.fromCharCode(capitalI);
var smallI = LowerSpecialCase[index][1];
var smallS = String.fromCharCode(smallI);
if (capitalS.toLowerCase() !== smallS) {
var hexC = decimalToHexString(capitalI);
var hexS = decimalToHexString(smallI);
$ERROR('#' + hexC + '->' + hexS + ' ');
errorCount++;
}
count++;
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

File diff suppressed because one or more lines are too long

View File

@ -1,57 +0,0 @@
// 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.18_A2;
* @section: 15.5.4.18;
* @assertion: The characters in SpecialCasings.txt are converted by multi-character results;
* @description: Complex test;
*/
//CHECK
UpperSpecialCase = [["\u00DF", "\u0053\u0053"], ["\uFB00", "\u0046\u0046"], ["\uFB01", "\u0046\u0049"], ["\uFB02", "\u0046\u004C"], ["\uFB03", "\u0046\u0046\u0049"], ["\uFB04", "\u0046\u0046\u004C"], ["\uFB05", "\u0053\u0054"], ["\uFB06", "\u0053\u0054"], ["\u0587", "\u0535\u0552"], ["\uFB13", "\u0544\u0546"], ["\uFB14", "\u0544\u0535"], ["\uFB15", "\u0544\u053B"], ["\uFB16", "\u054E\u0546"], ["\uFB17", "\u0544\u053D"], ["\u0149", "\u02BC\u006E"], ["\u0390", "\u03B9\u0308\u030D"], ["\u03B0", "\u03C5\u0308\u030D"], ["\u01F0", "\u006A\u030C"], ["\u1E96", "\u0068\u0331"], ["\u1E97", "\u0074\u0308"], ["\u1E98", "\u0077\u030A"], ["\u1E99", "\u0079\u030A"], ["\u1E9A", "\u0061\u02BE"], ["\u1F50", "\u03C5\u0313"], ["\u1F52", "\u03C5\u0313\u0300"], ["\u1F54", "\u03C5\u0313\u0301"], ["\u1F56", "\u03C5\u0313\u0342"], ["\u1FB6", "\u03B1\u0342"], ["\u1FC6", "\u03B7\u0342"], ["\u1FD2", "\u03B9\u0308\u0300"], ["\u1FD3", "\u03B9\u0308\u0301"], ["\u1FD6", "\u03B9\u0342"], ["\u1FD7", "\u03B9\u0308\u0342"], ["\u1FE2", "\u03C5\u0308\u0300"], ["\u1FE3", "\u03C5\u0308\u0301"], ["\u1FE4", "\u03C1\u0313"], ["\u1FE6", "\u03C5\u0342"], ["\u1FE7", "\u03C5\u0308\u0342"], ["\u1FF6", "\u03C9\u0342"], ["\u1F80", "\u1F00\u03B9"], ["\u1F88", "\u1F08\u03B9"], ["\u1F81", "\u1F09\u03B9"], ["\u1F82", "\u1F0A\u03B9"], ["\u1F83", "\u1F0B\u03B9"], ["\u1F84", "\u1F0C\u03B9"], ["\u1F85", "\u1F0D\u03B9"], ["\u1F86", "\u1F0E\u03B9"], ["\u1F87", "\u1F0F\u03B9"], ["\u1F90", "\u1F28\u03B9"], ["\u1F91", "\u1F29\u03B9"], ["\u1F92", "\u1F2A\u03B9"], ["\u1F93", "\u1F2B\u03B9"], ["\u1F94", "\u1F2C\u03B9"], ["\u1F95", "\u1F2D\u03B9"], ["\u1F96", "\u1F2E\u03B9"], ["\u1F97", "\u1F2F\u03B9"], ["\u1FA0", "\u1F68\u03B9"], ["\u1FA1", "\u1F69\u03B9"], ["\u1FA2", "\u1F6A\u03B9"], ["\u1FA3", "\u1F6B\u03B9"], ["\u1FA4", "\u1F6C\u03B9"], ["\u1FA5", "\u1F6D\u03B9"], ["\u1FA6", "\u1F6E\u03B9"], ["\u1FA7", "\u1F6F\u03B9"], ["\u1FB2", "\u1F70\u03B9"], ["\u1FB3", "\u0391\u03B9"], ["\u1FB4", "\u1F71\u03B9"], ["\u1FB7", "\u1FB6\u03B9"], ["\u1FC2", "\u1F74\u03B9"], ["\u1FC3", "\u0397\u03B9"], ["\u1FC4", "\u1F75\u03B9"], ["\u1FC7", "\u1FC6\u03B9"], ["\u1FF2", "\u1F7C\u03B9"], ["\u1FF3", "\u03A9\u03B9"], ["\u1FF4", "\u1F7D\u03B9"], ["\u1FF7", "\u1FF6\u03B9"], ["\u0049", "\u0131"], ["\u0069", "\u0130"]];
errorCount = 0;
count = 0;
for (index = 0; index < UpperSpecialCase.length; index++) {
var capitalI = UpperSpecialCase[index][0];
var capitalS = String.fromCharCode(capitalI);
var smallI = UpperSpecialCase[index][1];
var smallS = String.fromCharCode(smallI);
if (capitalS.toUpperCase() !== smallS) {
var hexC = decimalToHexString(capitalI);
var hexS = decimalToHexString(smallI);
$ERROR('#' + hexC + '->' + hexS + ' ');
errorCount++;
}
count++;
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

View File

@ -1,63 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S7.1_A1_T1;
* @section: 7.1;
* @assertion: The format control character (Cf) can occur anywhere in the source text
* and these characters are removed before applying the lexical grammar;
* @description: Complex test with eval;
*/
//CHECK#1
Cf = [[0x200C, 0x200F], [0x202A, 0x202E], [0x206A, 0x206F], [0xFEFF, 0xFEFF]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Cf.length; indexI++) {
for (indexJ = Cf[indexI][0]; indexJ <= Cf[indexI][1]; indexJ++) {
try {
var format = String.fromCharCode(indexJ);
var hex = decimalToHexString(indexJ);
eval(format);
eval(format + "var " + format + "x" + format + "=" + format + "1" + format);
eval(format);
if (x !== 1) {
$ERROR('#' + hex + ' ');
errorCount++;
}
} catch (e) {
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

View File

@ -1,61 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S7.1_A2.1_T1;
* @section: 7.1;
* @assertion: Since the format control character (Cf) are removed before processing string literals,
* one must use a Unicode escape sequence to include a Cf inside string literal;
* @description: Complex test, without eval;
*/
//CHECK#1
Cf = [[0x200C, 0x200F], [0x202A, 0x202E], [0x206A, 0x206F], [0xFEFF, 0xFEFF]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Cf.length; indexI++) {
for (indexJ = Cf[indexI][0]; indexJ <= Cf[indexI][1]; indexJ++) {
try {
var format = String.fromCharCode(indexJ);
var hex = decimalToHexString(indexJ);
var x = format + "a" + format + "b" + format;
if (x.length !== 5) {
$ERROR('#' + hex + ' ');
errorCount++;
}
} catch (e) {
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

View File

@ -1,61 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S7.1_A2.1_T2;
* @section: 7.1;
* @assertion: Since the format control character (Cf) are removed before processing string literals,
* one must use a Unicode escape sequence to include a Cf inside string literal;
* @description: Complex test, with eval;
*/
//CHECK#1
Cf = [[0x200C, 0x200F], [0x202A, 0x202E], [0x206A, 0x206F], [0xFEFF, 0xFEFF]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Cf.length; indexI++) {
for (indexJ = Cf[indexI][0]; indexJ <= Cf[indexI][1]; indexJ++) {
try {
var format = String.fromCharCode(indexJ);
var hex = decimalToHexString(indexJ);
eval('var x = "' + format + 'a' + format + 'b' + format + '"');
if (x.length !== 5) {
$ERROR('#' + hex + ' ');
errorCount++;
}
} catch (e) {
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

View File

@ -1,61 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S7.1_A2.2_T1;
* @section: 7.1;
* @assertion: Since the format control character (Cf) are removed before processing regular expression literals,
* one must use a Unicode escape sequence to include a Cf inside regular expression literal;
* @description: Complex test, without eval;
*/
//CHECK#1
Cf = [[0x200C, 0x200F], [0x202A, 0x202E], [0x206A, 0x206F], [0xFEFF, 0xFEFF]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Cf.length; indexI++) {
for (indexJ = Cf[indexI][0]; indexJ <= Cf[indexI][1]; indexJ++) {
try {
var format = String.fromCharCode(indexJ);
var hex = decimalToHexString(indexJ);
var x = RegExp(format + "a" + format + "b" + format);
if (x.source.length !== 5) {
$ERROR('#' + hex + ' ');
errorCount++;
}
} catch (e) {
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

View File

@ -1,61 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S7.1_A2.2_T2;
* @section: 7.1;
* @assertion: Since the format control character (Cf) are removed before processing regular expression literals,
* one must use a Unicode escape sequence to include a Cf inside regular expression literal;
* @description: Complex test, with eval;
*/
//CHECK#1
Cf = [[0x200C, 0x200F], [0x202A, 0x202E], [0x206A, 0x206F], [0xFEFF, 0xFEFF]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Cf.length; indexI++) {
for (indexJ = Cf[indexI][0]; indexJ <= Cf[indexI][1]; indexJ++) {
try {
var format = String.fromCharCode(indexJ);
var hex = decimalToHexString(indexJ);
eval('var x = RegExp("' + format + 'a' + format + 'b' + format + '")');
if (x.source.length !== 5) {
$ERROR('#' + hex + ' ');
errorCount++;
}
} catch (e) {
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

View File

@ -1,63 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S7.2_A1.6_T1;
* @section: 7.2, 7.5;
* @assertion: Any other Unicode "space separator" (category "Zs") between any two tokens is allowed;
* @description: Complex test with eval;
*/
//CHECK#1
Zs = [[0x2000, 0x200B], [0x3000, 0x3000]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Zs.length; indexI++) {
for (indexJ = Zs[indexI][0]; indexJ <= Zs[indexI][1]; indexJ++) {
try {
var format = String.fromCharCode(indexJ);
var hex = decimalToHexString(indexJ);
eval(format);
eval(format + "var " + format + "x" + format + "=" + format + "1" + format);
eval(format);
if (x !== 1) {
$ERROR('#' + hex + ' ');
errorCount++;
}
} catch (e) {
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

View File

@ -1,60 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S7.2_A2.6_T1;
* @section: 7.2, 7.8.4;
* @assertion: Any other Unicode "space separator" (category "Zs") within strings;
* @description: Complex test;
*/
//CHECK#1
Zs = [[0x2000, 0x200B], [0x3000, 0x3000]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Zs.length; indexI++) {
for (indexJ = Zs[indexI][0]; indexJ <= Zs[indexI][1]; indexJ++) {
try {
var format = String.fromCharCode(indexJ);
var hex = decimalToHexString(indexJ);
var x = "str" + format + "ing";
if (x !== "str" + format + "ing") {
$ERROR('#' + hex + ' ');
errorCount++;
}
} catch (e) {
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

View File

@ -1,61 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S7.2_A3.6_T1;
* @section: 7.2, 7.4;
* @assertion: Single line comment can contain any other Unicode "space separator" (category "Zs");
* @description: Complex test with eval;
*/
//CHECK#1
Zs = [[0x2000, 0x200B], [0x3000, 0x3000]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Zs.length; indexI++) {
for (indexJ = Zs[indexI][0]; indexJ <= Zs[indexI][1]; indexJ++) {
try {
var format = String.fromCharCode(indexJ);
var hex = decimalToHexString(indexJ);
var x = 0;
eval("//" + format + "single line" + format + "comment" + format + " x = 1;");
if (x !== 0) {
$ERROR('#' + hex + ' ');
errorCount++;
}
} catch (e) {
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

View File

@ -1,61 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S7.2_A4.6_T1;
* @section: 7.2, 7.4;
* @assertion: Multi line comment can contain any other Unicode "space separator" (category "Zs");
* @description: Complex test with eval;
*/
//CHECK#1
Zs = [[0x2000, 0x200B], [0x3000, 0x3000]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Zs.length; indexI++) {
for (indexJ = Zs[indexI][0]; indexJ <= Zs[indexI][1]; indexJ++) {
try {
var format = String.fromCharCode(indexJ);
var hex = decimalToHexString(indexJ);
var x = 0;
eval("/*" + format + "multi line" + format + "comment" + format + "\n x = 1;*/");
if (x !== 0) {
$ERROR('#' + hex + ' ');
errorCount++;
}
} catch (e) {
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,61 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S7.6_A1.1_T3;
* @section: 7.6;
* @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
* @description: UnicodeLetter :: Titlecase letter (Lt).
* Complex test with eval;
*/
//CHECK
Lt = [[0x01C5, 0x01C5], [0x01C8, 0x01C8], [0x01CB, 0x01CB], [0x01F2, 0x01F2]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Lt.length; indexI++) {
for (indexJ = Lt[indexI][0]; indexJ <= Lt[indexI][1]; indexJ++) {
try {
var identifier = String.fromCharCode(indexJ);
var hex = decimalToHexString(indexJ);
eval("var " + identifier + "=1");
if (eval(identifier + "===1") !== true) {
$ERROR('#' + hex + ' ');
errorCount++;
}
} catch (e) {
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

View File

@ -1,61 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S7.6_A1.1_T4;
* @section: 7.6;
* @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
* @description: UnicodeLetter :: Modifier letter (Lm).
* Complex test with eval;
*/
//CHECK
Lm = [[0x02B0, 0x02B8], [0x02BB, 0x02C1], [0x02D0, 0x02D1], [0x02E0, 0x02E4], [0x037A, 0x037A], [0x0559, 0x0559], [0x0640, 0x0640], [0x06E5, 0x06E6], [0x0E46, 0x0E46], [0x0EC6, 0x0EC6], [0x3005, 0x3005], [0x3031, 0x3035], [0x309D, 0x309E], [0x30FC, 0x30FE], [0xFF70, 0xFF70], [0xFF9E, 0xFF9F]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Lm.length; indexI++) {
for (indexJ = Lm[indexI][0]; indexJ <= Lm[indexI][1]; indexJ++) {
try {
var identifier = String.fromCharCode(indexJ);
var hex = decimalToHexString(indexJ);
eval("var " + identifier + "=1");
if (eval(identifier + "===1") !== true) {
$ERROR('#' + hex + ' ');
errorCount++;
}
} catch (e) {
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

View File

@ -1,61 +0,0 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S7.6_A1.1_T5;
* @section: 7.6;
* @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories "Lu", "Ll", "Lt", "Lm", "Lo", "Nl");
* @description: UnicodeLetter :: Other letter (Lo).
* Complex test with eval;
*/
//CHECK
Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
errorCount = 0;
count = 0;
for (indexI = 0; indexI < Lo.length; indexI++) {
for (indexJ = Lo[indexI][0]; indexJ <= Lo[indexI][1]; indexJ++) {
try {
var identifier = String.fromCharCode(indexJ);
var hex = decimalToHexString(indexJ);
eval("var " + identifier + "=1");
if (eval(identifier + "===1") !== true) {
$ERROR('#' + hex + ' ');
errorCount++;
}
} catch (e) {
$ERROR('#' + hex + ' ');
errorCount++;
}
count++;
}
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}

Some files were not shown because too many files have changed in this diff Show More