@@ -9,29 +9,15 @@ description: "ControlLetter :: RUSSIAN ALPHABET is incorrect"
---*/

//CHECK#0410-042F
var result = true;
for (var alpha = 0x0410; alpha <= 0x042F; alpha++) {
var str = String.fromCharCode(alpha % 32);
var arr = (new RegExp("\\c" + String.fromCharCode(alpha))).exec(str);
if (arr !== null) {
result = false;
}
}

if (result !== true) {
$ERROR('#1: RUSSIAN CAPITAL ALPHABET is incorrect');
var arr = (new RegExp("\\c" + String.fromCharCode(alpha))).exec(str);
assert.sameValue(arr, null, 'RUSSIAN CAPITAL ALPHABET: ' + alpha);
}

//CHECK#0430-044F
var result = true;
for (alpha = 0x0430; alpha <= 0x044F; alpha++) {
str = String.fromCharCode(alpha % 32);
arr = (new RegExp("\\c" + String.fromCharCode(alpha))).exec(str);
if (arr !== null) {
result = false;
}
}

if (result !== true) {
$ERROR('#2: russian small alphabet is incorrect');
arr = (new RegExp("\\c" + String.fromCharCode(alpha))).exec(str);
assert.sameValue(arr, null, 'russian small alphabet: ' + alpha);
}
@@ -19,24 +19,11 @@ var __expected = ["1\n\n\n\n\nl"];
__expected.index = 4;
__expected.input = "line1\n\n\n\n\nline2";

//CHECK#1
if (__executed.length !== __expected.length) {
$ERROR('#1: __executed = /[\\d][\\12-\\14]{1,}[^\\d]/.exec("line1\\n\\n\\n\\n\\nline2"); __executed.length === ' + __expected.length + '. Actual: ' + __executed.length);
}

//CHECK#2
if (__executed.index !== __expected.index) {
$ERROR('#2: __executed = /[\\d][\\12-\\14]{1,}[^\\d]/.exec("line1\\n\\n\\n\\n\\nline2"); __executed.index === ' + __expected.index + '. Actual: ' + __executed.index);
}

//CHECK#3
if (__executed.input !== __expected.input) {
$ERROR('#3: __executed = /[\\d][\\12-\\14]{1,}[^\\d]/.exec("line1\\n\\n\\n\\n\\nline2"); __executed.input === ' + __expected.input + '. Actual: ' + __executed.input);
}
assert.sameValue(__executed.length, __expected.length, '.length');
assert.sameValue(__executed.index, __expected.index, '.index');
assert.sameValue(__executed.input, __expected.input, '.input');

//CHECK#4
for(var index=0; index<__expected.length; index++) {
if (__executed[index] !== __expected[index]) {
$ERROR('#4: __executed = /[\\d][\\12-\\14]{1,}[^\\d]/.exec("line1\\n\\n\\n\\n\\nline2"); __executed[' + index + '] === ' + __expected[index] + '. Actual: ' + __executed[index]);
}
for(var index=0; index < __expected.length; index++) {
assert.sameValue(__executed[index], __expected[index], 'index: ' + index);
}
@@ -13,9 +13,6 @@ description: >
check results
---*/

var __executed = /\b(\w+) \2\b/.test("do you listen the the band");
var executed = /\b(\w+) \2\b/.test("do you listen the the band");

//CHECK#1
if (__executed) {
$ERROR('#1: /\\b(\\w+) \\2\\b/.test("do you listen the the band") === false');
}
assert.sameValue(executed, false);

This file was deleted.

@@ -9,8 +9,11 @@ description: >
includes: [propertyHelper.js]
---*/

var global = this;
assert.sameValue(typeof this.escape, "function");
assert.sameValue(typeof this["escape"], "function");

verifyWritable(global, "escape");
verifyNotEnumerable(global, "escape");
verifyConfigurable(global, "escape");
verifyProperty(this, "escape", {
writable: true,
enumerable: false,
configurable: true
});

This file was deleted.

@@ -9,6 +9,11 @@ description: >
includes: [propertyHelper.js]
---*/

verifyWritable(this, "unescape");
verifyNotEnumerable(this, "unescape");
verifyConfigurable(this, "unescape");
assert.sameValue(typeof this.unescape, "function");
assert.sameValue(typeof this["unescape"], "function");

verifyProperty(this, "unescape", {
writable: true,
enumerable: false,
configurable: true
});
@@ -13,13 +13,8 @@ description: >
---*/

//CHECK#1
Array.prototype.myproperty = 1;
var x = Array();
if (x.myproperty !== 1) {
$ERROR('#1: Array.prototype.myproperty = 1; var x = Array(); x.myproperty === 1. Actual: ' + (x.myproperty));
}
Array.prototype.myproperty = 42;
var x = Array();
assert.sameValue(x.myproperty, 42);

//CHECK#2
if (x.hasOwnProperty('myproperty') !== false) {
$ERROR('#2: Array.prototype.myproperty = 1; var x = Array(); x.hasOwnProperty(\'myproperty\') === false. Actual: ' + (x.hasOwnProperty('myproperty')));
}
assert.sameValue(Object.prototype.hasOwnProperty.call(x, 'myproperty'), false);

This file was deleted.

This file was deleted.

@@ -0,0 +1,20 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: >
A property name P (in the form of a string value) is an array index
if and only if ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal to 2^32 - 1
es5id: 15.4_A1.1_T1
description: Checking for boolean primitive
---*/

var x = [];

x[true] = 1;
assert.sameValue(x[1], undefined, "x[1]");
assert.sameValue(x["true"], 1, "x['true']");

x[false] = 0;
assert.sameValue(x[0], undefined, "x[0]");
assert.sameValue(x["false"], 0, "x['false']")
@@ -0,0 +1,26 @@
// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: >
A property name P (in the form of a string value) is an array index
if and only if ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal to 2^32 - 1
es5id: 15.4_A1.1_T2
description: Checking for number primitive
---*/

var x = [];

x[NaN] = 1;
assert.sameValue(x[0], undefined, "x[NaN] does not cast to x[0]");
assert.sameValue(x["NaN"], 1, "x[NaN] casts to x['NaN']");

var y = [];
y[Number.POSITIVE_INFINITY] = 1;
assert.sameValue(y[0], undefined, "y[Number.POSITIVE_INFINITY] !== y[0]");
assert.sameValue(y["Infinity"], 1, "y[Number.POSITIVE_INFINITY] === y['Infinity']");

var z = [];
z[Number.NEGATIVE_INFINITY] = 1;
assert.sameValue(z[0], undefined, "z[Number.NEGATIVE_INFINITY] !== z[0]");
assert.sameValue(z["-Infinity"], 1, "z[Number.NEGATIVE_INFINITY] === z['-Infinity']");
@@ -9,38 +9,30 @@ es5id: 15.4_A1.1_T3
description: Checking for number primitive
---*/

//CHECK#1
var x = [];
x[4294967296] = 1;
if (x[0] !== undefined) {
$ERROR('#1: x = []; x[4294967296] = 1; x[0] === undefined. Actual: ' + (x[0]));
}

//CHECK#2
if (x["4294967296"] !== 1) {
$ERROR('#2: x = []; x[4294967296] = 1; x["4294967296"] === 1. Actual: ' + (x["4294967296"]));
}
assert.sameValue(x[0], undefined, "x[0]");
assert.sameValue(x["4294967296"], 1, "x['4294967296'] !== 1");

//CHECK#3
var y = [];
y[4294967297] = 1;
if (y[1] !== undefined) {
$ERROR('#3: y = []; y[4294967297] = 1; y[1] === undefined. Actual: ' + (y[1]));
}
$ERROR('#3: y = []; y[4294967297] = 1; y[1] === undefined. Actual: ' + (y[1]));
}

//CHECK#4
if (y["4294967297"] !== 1) {
$ERROR('#4: y = []; y[4294967297] = 1; y["4294967297"] === 1. Actual: ' + (y["4294967297"]));
$ERROR('#4: y = []; y[4294967297] = 1; y["4294967297"] === 1. Actual: ' + (y["4294967297"]));
}

//CHECK#5
var z = [];
z[1.1] = 1;
if (z[1] !== undefined) {
$ERROR('#5: z = []; z[1.1] = 1; z[1] === undefined. Actual: ' + (z[1]));
$ERROR('#5: z = []; z[1.1] = 1; z[1] === undefined. Actual: ' + (z[1]));
}

//CHECK#6
if (z["1.1"] !== 1) {
$ERROR('#6: z = []; z[1.1] = 1; z["1.1"] === 1. Actual: ' + (z["1.1"]));
$ERROR('#6: z = []; z[1.1] = 1; z["1.1"] === 1. Actual: ' + (z["1.1"]));
}