mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
1997 lines
26 KiB
JavaScript
1997 lines
26 KiB
JavaScript
// Copyright JS Foundation and other contributors, http://js.foundation
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
(function tc_12_02__007() {
|
|
var a = 'undefined';
|
|
|
|
assert(a === 'undefined');
|
|
})();
|
|
|
|
(function tc_12_02__019() {
|
|
var
|
|
a = 2
|
|
|
|
assert(a === 2);
|
|
})();
|
|
|
|
(function tc_12_02__022() {
|
|
var a = 1;
|
|
var b = a;
|
|
|
|
assert(a === b);
|
|
})();
|
|
|
|
(function tc_12_02__003() {
|
|
var a = null;
|
|
assert(a === null);
|
|
})();
|
|
|
|
(function tc_12_02__001() {
|
|
var a;
|
|
assert(a === undefined);
|
|
})();
|
|
|
|
(function tc_12_02__006() {
|
|
var a = 'undefined';
|
|
|
|
assert(a === "undefined");
|
|
})();
|
|
|
|
(function tc_12_02__014() {
|
|
var
|
|
|
|
$a = 2;
|
|
assert($a === 2);
|
|
})();
|
|
|
|
(function tc_12_02__010() {
|
|
var a, b = 3.14, c;
|
|
|
|
assert(a === undefined && b === 3.14 && c === undefined)
|
|
})();
|
|
|
|
(function tc_12_02__004() {
|
|
var a = undefined;
|
|
|
|
assert(a === undefined);
|
|
})();
|
|
|
|
(function tc_12_02__005() {
|
|
var a = "undefined";
|
|
|
|
assert(a === "undefined");
|
|
})();
|
|
|
|
(function tc_12_02__009() {
|
|
var a = 1,
|
|
b,
|
|
c = 4;
|
|
|
|
b = a + c;
|
|
|
|
assert(b === 5);
|
|
})();
|
|
|
|
(function tc_12_02__011() {
|
|
var a, b, c;
|
|
|
|
assert(a === undefined && b === undefined && c === undefined);
|
|
})();
|
|
|
|
(function tc_12_02__002() {
|
|
var a = 12345;
|
|
assert(a === 12345);
|
|
})();
|
|
|
|
(function tc_12_02__020() {
|
|
var a = RegExp();
|
|
|
|
assert(a instanceof RegExp);
|
|
})();
|
|
|
|
(function tc_12_02__015() {
|
|
var a = 12 + "abc";
|
|
|
|
assert(a === "12abc");
|
|
})();
|
|
|
|
(function tc_12_02__018() {
|
|
var a = [];
|
|
|
|
assert(a instanceof Array && a.length === 0);
|
|
})();
|
|
|
|
(function tc_12_02__016() {
|
|
var a = {};
|
|
var b = typeof (a);
|
|
|
|
assert(b === "object" && b === typeof (Object()) && b === typeof ({}));
|
|
})();
|
|
|
|
(function tc_12_02__008() {
|
|
var a = false, b = true;
|
|
|
|
assert(a === false && b === true);
|
|
})();
|
|
|
|
(function tc_12_02__013() {
|
|
var
|
|
_a$1 = 2;
|
|
|
|
assert(_a$1 === 2);
|
|
})();
|
|
|
|
(function tc_12_02__012() {
|
|
var
|
|
_a1 = 2;
|
|
|
|
assert(_a1 === 2);
|
|
})();
|
|
|
|
(function tc_12_02__021() {
|
|
var a = new Date();
|
|
|
|
assert(a instanceof Date);
|
|
})();
|
|
|
|
(function tc_12_02_01__002() {
|
|
var arguments = 2;
|
|
assert(arguments === 2 && typeof (arguments) === "number");
|
|
})();
|
|
|
|
(function tc_12_02_01__001() {
|
|
var eval = 1;
|
|
assert(eval === 1 && typeof (eval) === "number");
|
|
})();
|
|
|
|
(function tc_12_12__006() {
|
|
var x = 0;
|
|
lablemark:
|
|
if (x < 6) {
|
|
++x;
|
|
break lablemark;
|
|
}
|
|
|
|
assert(x !== 6);
|
|
})();
|
|
|
|
(function tc_12_12__010() {
|
|
var x = 0;
|
|
for (i = 0; i < 10; ++i) {
|
|
lablemark:
|
|
for (j = 0; j < 10; ++j) {
|
|
for (k = 0; k < 10; ++k) {
|
|
++x;
|
|
continue lablemark;
|
|
}
|
|
}
|
|
}
|
|
|
|
assert(x == 100)
|
|
})();
|
|
|
|
(function tc_12_12__007() {
|
|
var x = 0;
|
|
for (i = 0; i < 10; ++i) {
|
|
for (j = 0; j < 10; ++j) {
|
|
lablemark:
|
|
for (k = 0; k < 10; ++k) {
|
|
++x;
|
|
break lablemark;
|
|
}
|
|
}
|
|
}
|
|
|
|
assert(x == 100)
|
|
})();
|
|
|
|
(function tc_12_12__003() {
|
|
switchMark:
|
|
switch (1) {
|
|
case 0:
|
|
break;
|
|
case 1:
|
|
break switchMark;
|
|
case 2:
|
|
assert(false);
|
|
}
|
|
})();
|
|
|
|
(function tc_12_12__009() {
|
|
var x = 0;
|
|
lablemark:
|
|
for (i = 0; i < 10; ++i) {
|
|
for (j = 0; j < 10; ++j) {
|
|
for (k = 0; k < 10; ++k) {
|
|
++x;
|
|
break lablemark;
|
|
}
|
|
}
|
|
}
|
|
|
|
assert(x == 1)
|
|
})();
|
|
|
|
(function tc_12_12__008() {
|
|
var x = 0;
|
|
for (i = 0; i < 10; ++i) {
|
|
lablemark:
|
|
for (j = 0; j < 10; ++j) {
|
|
for (k = 0; k < 10; ++k) {
|
|
++x;
|
|
break lablemark;
|
|
}
|
|
}
|
|
}
|
|
|
|
assert(x == 10)
|
|
})();
|
|
|
|
(function tc_12_12__005() {
|
|
whileMark:
|
|
for (i = 0; i < 10; ++i) {
|
|
continue whileMark;
|
|
assert(false);
|
|
}
|
|
})();
|
|
|
|
(function tc_12_12__001() {
|
|
loop:
|
|
while (true) {
|
|
break loop;
|
|
}
|
|
})();
|
|
|
|
(function tc_12_12__004() {
|
|
var i = 0;
|
|
|
|
whileMark:
|
|
while (i < 10) {
|
|
++i;
|
|
continue whileMark;
|
|
assert(false);
|
|
}
|
|
})();
|
|
|
|
(function tc_12_12__002() {
|
|
loop:
|
|
while (true) {
|
|
do {
|
|
for (; true; ) {
|
|
break loop;
|
|
}
|
|
} while (true);
|
|
}
|
|
})();
|
|
|
|
(function tc_12_03__003() {
|
|
var a="ab;c"
|
|
;
|
|
;
|
|
assert (a === 'ab;c');
|
|
})();
|
|
|
|
(function tc_12_03__001() {
|
|
function test()
|
|
{
|
|
;
|
|
return 1;;;;;;
|
|
}
|
|
|
|
test();
|
|
})();
|
|
|
|
(function tc_12_03__002() {
|
|
function test()
|
|
{
|
|
;;;;;;
|
|
return 1
|
|
}
|
|
|
|
test();
|
|
})();
|
|
|
|
(function tc_12_05__001() {
|
|
function test()
|
|
{
|
|
if (true) {
|
|
return 1;
|
|
}
|
|
assert(false);
|
|
}
|
|
|
|
test();
|
|
})();
|
|
|
|
(function tc_12_05__007() {
|
|
var a = 1, b = 2;
|
|
var c;
|
|
if (a === 1)
|
|
{
|
|
if (b === 1)
|
|
c = 3;
|
|
}
|
|
else
|
|
if (b === 2)
|
|
c = 5;
|
|
else
|
|
c = 7;
|
|
|
|
assert(c === undefined);
|
|
})();
|
|
|
|
(function tc_12_05__008() {
|
|
var a = 1, b = 2;
|
|
var c;
|
|
if (a === 1)
|
|
if (b === 1)
|
|
c = 3;
|
|
else
|
|
if (b === 2)
|
|
c = 5;
|
|
else
|
|
c = 7;
|
|
|
|
assert(c === 5);
|
|
|
|
})();
|
|
|
|
(function tc_12_05__004() {
|
|
function test()
|
|
{
|
|
if (false)
|
|
assert(false);
|
|
else {
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
test();
|
|
})();
|
|
|
|
(function tc_12_05__006() {
|
|
var a = 'w\0', b = 'w\0';
|
|
assert(a === b);
|
|
})();
|
|
|
|
(function tc_12_05__002() {
|
|
function test()
|
|
{
|
|
if (false) {
|
|
assert(false);
|
|
}
|
|
}
|
|
|
|
test();
|
|
})();
|
|
|
|
(function tc_12_05__005() {
|
|
function test()
|
|
{
|
|
if(true);
|
|
}
|
|
|
|
test();
|
|
})();
|
|
|
|
(function tc_12_05__003() {
|
|
function test()
|
|
{
|
|
if (true)
|
|
{
|
|
return 1;
|
|
}
|
|
else
|
|
assert(false);
|
|
}
|
|
|
|
test();
|
|
})();
|
|
|
|
(function tc_12_06_03__008() {
|
|
var sum = 1;
|
|
|
|
for (var i = 0; i < 10; i++, sum *= i)
|
|
;
|
|
|
|
assert(sum === 3628800);
|
|
})();
|
|
|
|
(function tc_12_06_03__010() {
|
|
for
|
|
(
|
|
var i = 0
|
|
;
|
|
i < 10
|
|
;
|
|
i++
|
|
)
|
|
{
|
|
i++;
|
|
}
|
|
|
|
assert(i == 10);
|
|
})();
|
|
|
|
(function tc_12_06_03__005() {
|
|
var i = 0;
|
|
for (; ; )
|
|
{
|
|
if (i++ === 100)
|
|
break;
|
|
}
|
|
})();
|
|
|
|
(function tc_12_06_03__004() {
|
|
var i;
|
|
|
|
for (i = 1; i < 20; )
|
|
i *= 2;
|
|
|
|
assert(i === 32);
|
|
})();
|
|
|
|
(function tc_12_06_03__011() {
|
|
var i;
|
|
|
|
function test()
|
|
{
|
|
for (i = 0; i < 10; i++)
|
|
{
|
|
if (i === 4)
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
var r = test();
|
|
|
|
assert(r === 1 && i === 4);
|
|
})();
|
|
|
|
(function tc_12_06_03__009() {
|
|
var init;
|
|
|
|
for (init = (129 - 8) / 11; init != 11; )
|
|
{
|
|
init = 33;
|
|
}
|
|
|
|
assert(init == 11);
|
|
})();
|
|
|
|
(function tc_12_06_03__001() {
|
|
var cnt = 1;
|
|
|
|
for (var i = 0; i < 10; i++)
|
|
cnt++;
|
|
|
|
assert(cnt === 11 && i === 10);
|
|
})();
|
|
|
|
(function tc_12_06_03__006() {
|
|
var sum = 0;
|
|
for (var i = 1; i <= 10; i++)
|
|
{
|
|
for (var j = 1; j <= 5; j++)
|
|
{
|
|
sum += i * j;
|
|
}
|
|
}
|
|
|
|
assert(sum === 825);
|
|
})();
|
|
|
|
(function tc_12_06_03__007() {
|
|
var sum = 0;
|
|
for (var i = 1, j = 1, k = 1; i + j + k <= 100; i++, j += 2, k += 3)
|
|
{
|
|
sum += i + j + k;
|
|
}
|
|
|
|
assert(sum == 867);
|
|
})();
|
|
|
|
(function tc_12_06_03__003() {
|
|
var i;
|
|
|
|
for (i = 0; ; i += 5)
|
|
{
|
|
if (i === 100)
|
|
break;
|
|
}
|
|
})();
|
|
|
|
(function tc_12_06_03__002() {
|
|
var cond = 1.999;
|
|
var cnt = 0;
|
|
|
|
for (; cond < 10.333; cond += 1.121)
|
|
cnt++;
|
|
|
|
assert(cnt == 8);
|
|
})();
|
|
|
|
(function tc_12_06_04__007() {
|
|
var o = {a: 1, b: 2, c: 3, d: 4, e: 5};
|
|
|
|
function test()
|
|
{
|
|
for (var p in o)
|
|
{
|
|
if (p === 'c')
|
|
return 1;
|
|
|
|
o[p] += 4;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
var r = test();
|
|
|
|
assert(((o.a === 5 && o.b === 6 && o.c === 3) ||
|
|
(o.c === 3 && o.d === 8 && o.e === 9)) && r === 1);
|
|
})();
|
|
|
|
(function tc_12_06_04__006() {
|
|
var o = {a: 1, b: 2, c: 3};
|
|
|
|
for
|
|
(
|
|
var
|
|
p in o
|
|
)
|
|
{
|
|
o[p] += 4;
|
|
}
|
|
|
|
assert(o.a === 5 && o.b === 6 && o.c === 7);
|
|
})();
|
|
|
|
(function tc_12_06_04__002() {
|
|
var a = new Array(1, 2, 3, 4, 5, 6, 7);
|
|
a.eight = 8;
|
|
|
|
var p;
|
|
for (p in a)
|
|
{
|
|
a[p] += 1;
|
|
}
|
|
|
|
assert(a[0] === 2 && a[1] === 3 && a[2] === 4 && a[3] === 5 &&
|
|
a[4] === 6 && a[5] === 7 && a[6] === 8 && a['eight'] === 9);
|
|
})();
|
|
|
|
(function tc_12_06_04__005() {
|
|
var b = {basep: "base"};
|
|
|
|
function dConstr()
|
|
{
|
|
this.derivedp = "derived";
|
|
}
|
|
dConstr.prototype = b;
|
|
|
|
var d = new dConstr();
|
|
|
|
for (var p in d)
|
|
{
|
|
d[p] += "A";
|
|
}
|
|
|
|
assert(d.basep === "baseA" && d.derivedp === "derivedA");
|
|
})();
|
|
|
|
(function tc_12_06_04__004() {
|
|
var a;
|
|
|
|
for (var p in a)
|
|
{
|
|
assert(false);
|
|
}
|
|
})();
|
|
|
|
(function tc_12_06_04__001() {
|
|
var o = {a: 1, b: 2, c: 3};
|
|
|
|
for (var p in o)
|
|
{
|
|
o[p] += 4;
|
|
}
|
|
|
|
assert(o.a === 5 && o.b === 6 && o.c === 7);
|
|
})();
|
|
|
|
(function tc_12_06_04__003() {
|
|
var a = null;
|
|
|
|
for (var p in a)
|
|
{
|
|
assert(false);
|
|
}
|
|
})();
|
|
|
|
(function tc_12_06_01__002() {
|
|
var cnt = 1;
|
|
do
|
|
{
|
|
cnt++;
|
|
if (cnt === 42) {
|
|
break;
|
|
}
|
|
} while (true);
|
|
})();
|
|
|
|
(function tc_12_06_01__010() {
|
|
var cnt = 0;
|
|
|
|
function test()
|
|
{
|
|
do
|
|
{
|
|
cnt++;
|
|
if (cnt === 8)
|
|
return 1;
|
|
}
|
|
while (cnt < 10);
|
|
|
|
return 0;
|
|
}
|
|
|
|
var r = test();
|
|
|
|
assert(cnt === 8 && r === 1);
|
|
})();
|
|
|
|
(function tc_12_06_01__009() {
|
|
var cnt = 0;
|
|
do
|
|
{
|
|
cnt++;
|
|
}
|
|
while
|
|
(cnt < 10
|
|
);
|
|
|
|
assert(cnt === 10);
|
|
})();
|
|
|
|
(function tc_12_06_01__006() {
|
|
var cnt = 1;
|
|
do
|
|
{
|
|
cnt++;
|
|
}
|
|
while (false);
|
|
|
|
assert(cnt === 2);
|
|
})();
|
|
|
|
(function tc_12_06_01__001() {
|
|
var cnt = 1;
|
|
do
|
|
cnt++;
|
|
while (cnt < 10);
|
|
|
|
assert(cnt === 10);
|
|
})();
|
|
|
|
(function tc_12_06_01__007() {
|
|
var cnt = 1;
|
|
do
|
|
{
|
|
cnt++;
|
|
}
|
|
while (!"string");
|
|
|
|
assert(cnt === 2);
|
|
})();
|
|
|
|
(function tc_12_06_01__003() {
|
|
var cnt = 1;
|
|
do {
|
|
cnt++;
|
|
|
|
if (cnt === 10)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
while (0, 1);
|
|
})();
|
|
|
|
(function tc_12_06_01__005() {
|
|
var x = 1 / 3;
|
|
do
|
|
{
|
|
x = 1;
|
|
}
|
|
while (x === 3 / 9);
|
|
assert (x === 1);
|
|
})();
|
|
|
|
(function tc_12_06_01__008() {
|
|
var cnt = 0;
|
|
do
|
|
{
|
|
cnt++;
|
|
}
|
|
while (!(cnt & 0x8000));
|
|
|
|
assert(cnt == 32768);
|
|
})();
|
|
|
|
(function tc_12_06_01__004() {
|
|
var obj = new Object();
|
|
obj.x = "defined";
|
|
do
|
|
{
|
|
delete obj.x;
|
|
}
|
|
while (obj.x !== undefined);
|
|
})();
|
|
|
|
(function tc_12_06_02__004() {
|
|
var cnt = 33;
|
|
|
|
while ("")
|
|
cnt /= 2;
|
|
|
|
assert(cnt === 33);
|
|
})();
|
|
|
|
(function tc_12_06_02__005() {
|
|
var bVal = true;
|
|
var val = "test";
|
|
|
|
while (!bVal)
|
|
{
|
|
val += " of while";
|
|
}
|
|
|
|
assert(val === "test");
|
|
})();
|
|
|
|
(function tc_12_06_02__008() {
|
|
var cnt = 25;
|
|
|
|
function test()
|
|
{
|
|
while (cnt)
|
|
{
|
|
cnt--;
|
|
if (cnt === 3)
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
r = test();
|
|
|
|
assert(cnt === 3 && r === 1);
|
|
})();
|
|
|
|
(function tc_12_06_02__002() {
|
|
var cnt = 0;
|
|
|
|
while (1) {
|
|
cnt++;
|
|
if (cnt === 10)
|
|
break;
|
|
}
|
|
})();
|
|
|
|
(function tc_12_06_02__003() {
|
|
var cnt = 0;
|
|
while ((1234 - 34) % 23 - 1234 * 23.222)
|
|
{
|
|
cnt++;
|
|
if (cnt === 10)
|
|
break;
|
|
}
|
|
})();
|
|
|
|
(function tc_12_06_02__001() {
|
|
var cnt = 25;
|
|
while (cnt)
|
|
cnt--;
|
|
|
|
assert(cnt === 0);
|
|
})();
|
|
|
|
(function tc_12_06_02__007() {
|
|
var bitField = 0x1000000;
|
|
var cnt = 0;
|
|
|
|
while
|
|
(
|
|
bitField >>= 1 &&
|
|
true
|
|
)
|
|
{
|
|
cnt++;
|
|
}
|
|
|
|
assert(cnt === 24);
|
|
})();
|
|
|
|
(function tc_12_06_02__006() {
|
|
var bitField = 0x1000000;
|
|
var cnt = 0;
|
|
|
|
while (bitField >>= 1)
|
|
{
|
|
cnt++;
|
|
}
|
|
|
|
assert(cnt === 24);
|
|
})();
|
|
|
|
(function tc_12_09__002() {
|
|
var r = test()
|
|
|
|
assert(r === 1);
|
|
|
|
function test()
|
|
{
|
|
return ((23 << 2) + 8) / 100;
|
|
}
|
|
})();
|
|
|
|
(function tc_12_09__001() {
|
|
var r = test()
|
|
|
|
assert(typeof r == 'object' && r.prop1 === "property1" && r.prop2 === 2 && r.prop3 === false);
|
|
|
|
function test()
|
|
{
|
|
var o = {
|
|
prop1: "property1",
|
|
prop2: 2,
|
|
prop3: false
|
|
};
|
|
|
|
return o;
|
|
}
|
|
})();
|
|
|
|
(function tc_12_09__005() {
|
|
var r = test()
|
|
|
|
assert(r === 100);
|
|
|
|
function test()
|
|
{
|
|
function internal()
|
|
{
|
|
return 100;
|
|
}
|
|
|
|
return internal();
|
|
}
|
|
})();
|
|
|
|
(function tc_12_09__006() {
|
|
var r = test()
|
|
|
|
assert(typeof r == 'function');
|
|
|
|
function test()
|
|
{
|
|
function internal()
|
|
{
|
|
return 100;
|
|
}
|
|
|
|
return internal;
|
|
}
|
|
})();
|
|
|
|
(function tc_12_09__004() {
|
|
var r = test()
|
|
|
|
assert(r == undefined);
|
|
|
|
function test()
|
|
{
|
|
var r = 1;
|
|
return
|
|
r;
|
|
}
|
|
})();
|
|
|
|
(function tc_12_09__003() {
|
|
var r = test()
|
|
|
|
assert(r === 33);
|
|
|
|
function test()
|
|
{
|
|
return 33;
|
|
}
|
|
})();
|
|
|
|
(function tc_12_04__003() {
|
|
var a, b, c
|
|
a = 2, b = 3, c = 4
|
|
})();
|
|
|
|
(function tc_12_04__001() {
|
|
var a = 5, b = 1;
|
|
(a + b);
|
|
})();
|
|
|
|
(function tc_12_04__002() {
|
|
var a = 5, b = 1;
|
|
a = a && b;
|
|
})();
|
|
|
|
(function tc_12_04__004() {
|
|
var a
|
|
a = function () {
|
|
}
|
|
})();
|
|
|
|
(function tc_12_08__008() {
|
|
var i = 9;
|
|
var cnt = 0;
|
|
|
|
while (i-- > 0)
|
|
{
|
|
if (i % 2)
|
|
break;
|
|
|
|
var j = 0;
|
|
while (j++ < 20)
|
|
{
|
|
if (j % 2 === 0)
|
|
break;
|
|
cnt++;
|
|
}
|
|
|
|
}
|
|
|
|
assert(cnt === 1);
|
|
})();
|
|
|
|
(function tc_12_08__014() {
|
|
var sum = 0;
|
|
var i = 0, j = 0;
|
|
top:
|
|
do
|
|
{
|
|
j = 0;
|
|
|
|
do
|
|
{
|
|
if (j > 9 && i % 2)
|
|
break top;
|
|
|
|
sum += 1;
|
|
}
|
|
while (j++ < 20);
|
|
|
|
sum += 1;
|
|
}
|
|
while (i++ < 10);
|
|
|
|
assert(sum === 32);
|
|
})();
|
|
|
|
(function tc_12_08__009() {
|
|
var sum = 0, i = 0;
|
|
|
|
WhileLabel:
|
|
while (++i < 10)
|
|
{
|
|
if (i === 5)
|
|
{
|
|
break WhileLabel;
|
|
}
|
|
|
|
sum += i;
|
|
}
|
|
|
|
assert(sum === 10);
|
|
})();
|
|
|
|
(function tc_12_08__010() {
|
|
var sum = 0;
|
|
var i = 0, j = 0;
|
|
top:
|
|
while (i++ < 10)
|
|
{
|
|
j = 0;
|
|
while (j++ < 20)
|
|
{
|
|
if (j > 9 && i % 2)
|
|
break top;
|
|
|
|
sum += 1;
|
|
}
|
|
|
|
sum += 1;
|
|
}
|
|
|
|
assert(sum === 9);
|
|
})();
|
|
|
|
(function tc_12_08__011() {
|
|
var mask = 0xff0f;
|
|
var numOnes = 0;
|
|
|
|
do
|
|
{
|
|
if (!(mask & 1))
|
|
break;
|
|
|
|
mask >>= 1;
|
|
numOnes++;
|
|
} while (mask);
|
|
|
|
assert(numOnes === 4);
|
|
})();
|
|
|
|
(function tc_12_08__002() {
|
|
var o = {p1: 1,
|
|
p2: {p1: 100, p2: 200, p3: 100},
|
|
p3: 4,
|
|
p4: 7,
|
|
p5: 124686,
|
|
p6: {p1: 100, p2: 200, p3: 100},
|
|
p7: 1},
|
|
sum = 0;
|
|
|
|
for (var p in o)
|
|
{
|
|
if (p === "p4")
|
|
break;
|
|
|
|
if (typeof (o[p]) === "object")
|
|
{
|
|
for (var pp in o[p])
|
|
{
|
|
if (pp === "p2")
|
|
break;
|
|
|
|
sum += o[p][pp];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
sum += 20;
|
|
}
|
|
}
|
|
|
|
assert(sum === 140);
|
|
})();
|
|
|
|
(function tc_12_08__007() {
|
|
var mask = 0xff0f;
|
|
var numOnes = 0;
|
|
|
|
while (mask)
|
|
{
|
|
if (!(mask & 1))
|
|
break;
|
|
|
|
mask >>= 1;
|
|
numOnes++;
|
|
}
|
|
|
|
assert(numOnes === 4);
|
|
})();
|
|
|
|
(function tc_12_08__004() {
|
|
function main()
|
|
{
|
|
var sum = 0;
|
|
for (var i = 0; i < 10; i++)
|
|
for (var j = 0; j < 20; j++)
|
|
{
|
|
if (j === 10)
|
|
break;
|
|
|
|
sum += 1;
|
|
}
|
|
|
|
assert(sum === 100);
|
|
}
|
|
|
|
main ();
|
|
})();
|
|
|
|
(function tc_12_08__016() {
|
|
var o = {p1: 1, p2: 2, p3: {p1: 150, p2: 200, p3: 130, p4: 20}, p4: 4, p5: 46}, sum = 0;
|
|
for (var p in o)
|
|
{
|
|
if (p === "p4")
|
|
continue;
|
|
|
|
if (typeof (o[p]) === "object")
|
|
{
|
|
for (var pp in o[p])
|
|
{
|
|
if (pp === "p2")
|
|
break;
|
|
|
|
sum += o[p][pp];
|
|
}
|
|
}
|
|
else {
|
|
sum += o[p];
|
|
}
|
|
}
|
|
|
|
assert(sum === 199);
|
|
})();
|
|
|
|
(function tc_12_08__012() {
|
|
var i = 10;
|
|
var cnt = 0;
|
|
|
|
do
|
|
{
|
|
var j = 0;
|
|
do
|
|
{
|
|
if (j % 2 === 0)
|
|
break;
|
|
cnt++;
|
|
}
|
|
while (j++ < 20)
|
|
|
|
if (i % 2)
|
|
break;
|
|
}
|
|
while (i-- > 0);
|
|
|
|
assert(cnt === 0);
|
|
})();
|
|
|
|
(function tc_12_08__001() {
|
|
var o = {p1: 1,
|
|
p2: {p1: 100, p2: 200, p3: 100},
|
|
p3: 4,
|
|
p4: 7,
|
|
p5: 124686,
|
|
p6: {p1: 100, p2: 200, p3: 100},
|
|
p7: 1},
|
|
sum = 0;
|
|
|
|
|
|
for (var p in o)
|
|
{
|
|
if (p === "p4")
|
|
break;
|
|
|
|
if (typeof (o[p]) === "object")
|
|
{
|
|
top:
|
|
for (var pp in o[p])
|
|
{
|
|
if (pp === "p2")
|
|
break top;
|
|
|
|
sum += o[p][pp];
|
|
}
|
|
}
|
|
|
|
sum += 20;
|
|
|
|
}
|
|
|
|
assert(sum === 160);
|
|
})();
|
|
|
|
(function tc_12_08__018() {
|
|
var o = {p1: 1,
|
|
p2: {p1: 100, p2: 200, p3: 100},
|
|
p3: 4,
|
|
p4: 7,
|
|
p5: 124686,
|
|
p6: {p1: 100, p2: 200, p3: 100},
|
|
p7: 1},
|
|
sum = 0;
|
|
|
|
top:
|
|
for (var p in o)
|
|
{
|
|
if (p === "p4")
|
|
break;
|
|
|
|
if (typeof (o[p]) === "object")
|
|
{
|
|
for (var pp in o[p])
|
|
{
|
|
if (pp === "p2")
|
|
break top;
|
|
|
|
sum += o[p][pp];
|
|
}
|
|
}
|
|
|
|
sum += 20;
|
|
|
|
}
|
|
|
|
assert(sum === 120)
|
|
})();
|
|
|
|
(function tc_12_08__013() {
|
|
var sum = 0, i = 0;
|
|
|
|
DoWhileLabel:
|
|
do
|
|
{
|
|
if (i === 5)
|
|
{
|
|
break DoWhileLabel;
|
|
}
|
|
|
|
sum += i;
|
|
}
|
|
while (++i < 10);
|
|
|
|
assert(sum === 10);
|
|
})();
|
|
|
|
(function tc_12_08__005() {
|
|
var sum = 0;
|
|
|
|
ForLabel:
|
|
for (var i = 0; i < 10; i++)
|
|
{
|
|
if (i === 5)
|
|
{
|
|
break ForLabel;
|
|
}
|
|
|
|
sum += i;
|
|
}
|
|
|
|
assert(sum === 10);
|
|
})();
|
|
|
|
(function tc_12_08__015() {
|
|
var o = {p1: 1, p2: 2, p3: 3, p4: 1, p5: 2}, sum = 0;
|
|
for (var p in o)
|
|
{
|
|
if (p === "p3")
|
|
{
|
|
break;
|
|
}
|
|
|
|
sum += o[p];
|
|
}
|
|
|
|
assert(sum === 3);
|
|
})();
|
|
|
|
(function tc_12_08__017() {
|
|
var o = {a: 1, b: 2, c: 3};
|
|
|
|
ForLabel:
|
|
for (var p in o)
|
|
{
|
|
if (p === "b")
|
|
break ForLabel;
|
|
o[p] += 4;
|
|
}
|
|
|
|
assert(o.a + o.b + o.c === 10);
|
|
})();
|
|
|
|
(function tc_12_08__003() {
|
|
var sum = 0;
|
|
for (var i = 0; i < 10; i++)
|
|
{
|
|
if (i === 5)
|
|
{
|
|
break;
|
|
}
|
|
|
|
sum += i;
|
|
}
|
|
|
|
assert(sum === 10);
|
|
})();
|
|
|
|
(function tc_12_08__006() {
|
|
var sum = 0;
|
|
top:
|
|
for (var i = 0; i < 10; i++)
|
|
{
|
|
for (var j = 0; j < 20; j++)
|
|
{
|
|
if (j > 9 && i % 2)
|
|
break top;
|
|
|
|
sum += 1;
|
|
}
|
|
|
|
sum += 1;
|
|
}
|
|
|
|
assert(sum === 31);
|
|
})();
|
|
|
|
(function tc_12_10__003() {
|
|
var o = {prop: "property"};
|
|
|
|
with (o) {
|
|
assert(prop == "property");
|
|
}
|
|
})();
|
|
|
|
(function tc_12_10__005() {
|
|
with ({})
|
|
{
|
|
var x = "abc";
|
|
}
|
|
|
|
assert(x === "abc");
|
|
})();
|
|
|
|
(function tc_12_10__004() {
|
|
var x;
|
|
|
|
function test()
|
|
{
|
|
with (Math)
|
|
{
|
|
x = abs(-396);
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
var r = test();
|
|
|
|
assert(r === 1 && x === 396);
|
|
})();
|
|
|
|
(function tc_12_10__002() {
|
|
var o = {prop: "property"};
|
|
|
|
with (o) {
|
|
assert(prop == "property");
|
|
}
|
|
})();
|
|
|
|
(function tc_12_10__007() {
|
|
var x, y;
|
|
|
|
with
|
|
(
|
|
Math)
|
|
{
|
|
x = cos(PI);
|
|
}
|
|
|
|
assert(x == -1);
|
|
})();
|
|
|
|
(function tc_12_10__001() {
|
|
var x, y;
|
|
|
|
with (Math) {
|
|
x = cos(PI);
|
|
}
|
|
|
|
assert(x == -1);
|
|
})();
|
|
|
|
(function tc_12_10__006() {
|
|
assert(test("hello") == "hello" && typeof test({}) == "object" && test({arg: "hello"}) == "hello")
|
|
|
|
function test(arg) {
|
|
with (arg) {
|
|
return arg;
|
|
}
|
|
}
|
|
})();
|
|
|
|
(function tc_12_11__005() {
|
|
switch (1) {
|
|
}
|
|
})();
|
|
|
|
(function tc_12_11__002() {
|
|
var matchesCount = 0;
|
|
|
|
switch ("key") {
|
|
case "key":
|
|
++matchesCount;
|
|
break;
|
|
case "key":
|
|
++matchesCount;
|
|
break;
|
|
case "another key":
|
|
++matchesCount;
|
|
break;
|
|
default:
|
|
++matchesCount;
|
|
break;
|
|
}
|
|
|
|
assert (matchesCount === 1);
|
|
})();
|
|
|
|
(function tc_12_11__001() {
|
|
switch (1) {
|
|
case 0:
|
|
assert(false);
|
|
case 1:
|
|
break;
|
|
default:
|
|
assert(false);
|
|
}
|
|
})();
|
|
|
|
(function tc_12_11__006() {
|
|
function fact(n)
|
|
{
|
|
return n < 2 ? 1 : n * fact(n - 1);
|
|
}
|
|
|
|
switch (fact(5)) {
|
|
case 5 * fact(4):
|
|
break;
|
|
default:
|
|
assert(false);
|
|
}
|
|
})();
|
|
|
|
(function tc_12_11__004() {
|
|
var counter = 0;
|
|
|
|
switch ("key") {
|
|
case "key":
|
|
++counter;
|
|
case "another key":
|
|
++counter;
|
|
case "another key2":
|
|
++counter;
|
|
default:
|
|
++counter;
|
|
}
|
|
|
|
assert (counter == 4);
|
|
})();
|
|
|
|
(function tc_12_11__003() {
|
|
switch (1) {
|
|
case true:
|
|
assert(false);
|
|
case false:
|
|
assert(false);
|
|
default:
|
|
assert(true);
|
|
}
|
|
})();
|
|
|
|
(function tc_12_11__007() {
|
|
switch ("key") {
|
|
case "another key":
|
|
assert(false);
|
|
default:
|
|
break;
|
|
case "another key2":
|
|
assert(false);
|
|
}
|
|
})();
|
|
|
|
(function tc_12_14__001() {
|
|
try {
|
|
try {
|
|
throw "error";
|
|
} catch (e) {
|
|
throw e;
|
|
}
|
|
assert(false);
|
|
} catch (e) {
|
|
}
|
|
})();
|
|
|
|
(function tc_12_14__003() {
|
|
function test ()
|
|
{
|
|
try {
|
|
throw 1;
|
|
} catch (e) {
|
|
return (e === 1);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
assert (test ());
|
|
})();
|
|
|
|
(function tc_12_14__004() {
|
|
function test ()
|
|
{
|
|
try {
|
|
throw "error";
|
|
} catch (e) {
|
|
return false;
|
|
} finally {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
assert (test ());
|
|
})();
|
|
|
|
(function tc_12_14__006() {
|
|
function test ()
|
|
{
|
|
try {
|
|
var x = 1;
|
|
} finally {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
assert (test ());
|
|
})();
|
|
|
|
(function tc_12_14__005() {
|
|
function test ()
|
|
{
|
|
try {
|
|
throw "error";
|
|
} catch (e) {
|
|
return true;
|
|
} finally {
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
assert (test ());
|
|
})();
|
|
|
|
(function tc_12_14__002() {
|
|
function test ()
|
|
{
|
|
try {
|
|
var x = 1;
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
assert (test ());
|
|
})();
|
|
|
|
(function tc_12_01__005() {
|
|
{
|
|
{
|
|
var a = null;
|
|
;
|
|
}
|
|
{
|
|
{
|
|
}
|
|
}
|
|
a = 'null';
|
|
}
|
|
|
|
assert(a === 'null');
|
|
})();
|
|
|
|
(function tc_12_01__004() {
|
|
{
|
|
var a = null;
|
|
;
|
|
a = 'null';
|
|
}
|
|
|
|
assert(a === 'null');
|
|
})();
|
|
|
|
(function tc_12_01__002() {
|
|
function test ()
|
|
{
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
assert (test ());
|
|
})();
|
|
|
|
(function tc_12_01__003() {
|
|
{;;}
|
|
})();
|
|
|
|
(function tc_12_01__001() {
|
|
{
|
|
}
|
|
})();
|
|
|
|
(function tc_12_13__001() {
|
|
function test ()
|
|
{
|
|
try {
|
|
if (true) {
|
|
throw "error";
|
|
}
|
|
} catch (e) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
assert (test ());
|
|
})();
|
|
|
|
(function tc_12_13__003() {
|
|
function d () {
|
|
throw "exception";
|
|
}
|
|
function c () {
|
|
d ();
|
|
}
|
|
function b () {
|
|
c ();
|
|
}
|
|
function a () {
|
|
b ();
|
|
}
|
|
|
|
function test ()
|
|
{
|
|
try {
|
|
a ();
|
|
} catch (e) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
assert (test ());
|
|
})();
|
|
|
|
(function tc_12_13__002() {
|
|
function test ()
|
|
{
|
|
try {
|
|
while (true) {
|
|
throw "error";
|
|
}
|
|
} catch (e) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
assert (test ());
|
|
})();
|
|
|
|
(function tc_12_07__001() {
|
|
var sum = 0;
|
|
for (var i = 0; i < 10; i++)
|
|
{
|
|
if (i === 5)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
sum += i;
|
|
}
|
|
|
|
assert(sum === 40);
|
|
})();
|
|
|
|
(function tc_12_07__009() {
|
|
var sum = 0, i = 0;
|
|
|
|
WhileLabel:
|
|
while (++i < 10)
|
|
{
|
|
if (i === 5)
|
|
{
|
|
continue WhileLabel;
|
|
}
|
|
|
|
sum += i;
|
|
}
|
|
|
|
assert(sum === 40);
|
|
})();
|
|
|
|
(function tc_12_07__006() {
|
|
var sum = 0;
|
|
top:
|
|
for (var i = 0; i < 10; i++)
|
|
{
|
|
for (var j = 0; j < 20; j++)
|
|
{
|
|
if (j > 9 && i % 2)
|
|
continue top;
|
|
|
|
sum += 1;
|
|
}
|
|
|
|
sum += 1;
|
|
}
|
|
|
|
assert(sum === 155);
|
|
})();
|
|
|
|
(function tc_12_07__002() {
|
|
var sum = 0;
|
|
for (var i = 0; i < 10; i++)
|
|
for (var j = 0; j < 20; j++)
|
|
{
|
|
if (j > 9)
|
|
continue;
|
|
|
|
sum += 1;
|
|
}
|
|
|
|
assert(sum === 100);
|
|
})();
|
|
|
|
(function tc_12_07__015() {
|
|
var o = {p1: 1, p2: 2, p3: 3, p4: 4, p5: 5}, sum = 0;
|
|
for (var p in o)
|
|
{
|
|
if (p == "p3")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
sum += o[p];
|
|
}
|
|
|
|
assert(sum == 12)
|
|
})();
|
|
|
|
(function tc_12_07__008() {
|
|
var i = 10;
|
|
var cnt = 0;
|
|
|
|
while (i-- > 0)
|
|
{
|
|
if (i % 2)
|
|
continue;
|
|
|
|
var j = 0;
|
|
while (j++ < 20)
|
|
{
|
|
if (j % 2 === 0)
|
|
continue;
|
|
cnt++;
|
|
}
|
|
|
|
}
|
|
|
|
assert(cnt === 50);
|
|
})();
|
|
|
|
(function tc_12_07__004() {
|
|
var o = {a: 1, b: 2, c: 3};
|
|
|
|
ForLabel:
|
|
for (var p in o)
|
|
{
|
|
if (p === "b")
|
|
continue ForLabel;
|
|
o[p] += 4;
|
|
}
|
|
|
|
assert(o.a === 5 && o.b === 2 && o.c === 7);
|
|
})();
|
|
|
|
(function tc_12_07__012() {
|
|
var i = 10;
|
|
var cnt = 0;
|
|
|
|
do
|
|
{
|
|
if (i % 2)
|
|
continue;
|
|
|
|
var j = 0;
|
|
do
|
|
{
|
|
if (j % 2 === 0)
|
|
continue;
|
|
cnt++;
|
|
}
|
|
while (j++ < 20)
|
|
}
|
|
while (i-- > 0);
|
|
|
|
assert(cnt === 60);
|
|
})();
|
|
|
|
(function tc_12_07__003() {
|
|
var o = {p1: 1, p2: 2, p3: {p1: 100, p2: 200, p3: 100}, p4: 4, p5: 5}, sum = 0;
|
|
|
|
top:
|
|
for (var p in o)
|
|
{
|
|
if (p === "p2")
|
|
continue;
|
|
|
|
if (typeof (o[p]) === "object")
|
|
{
|
|
for (var pp in o[p])
|
|
{
|
|
if (pp === "p2")
|
|
continue top;
|
|
|
|
sum += o[p][pp];
|
|
}
|
|
}
|
|
|
|
sum += 20;
|
|
|
|
}
|
|
|
|
assert(sum === 160);
|
|
})();
|
|
|
|
(function tc_12_07__016() {
|
|
var o = {p1: 1, p2: 2, p3: {p1: 100, p2: 200}, p4: 4, p5: 5}, sum = 0;
|
|
for (var p in o)
|
|
{
|
|
if (p === "p2")
|
|
continue;
|
|
|
|
if (typeof (o[p]) === "object")
|
|
{
|
|
for (var pp in o[p])
|
|
{
|
|
if (pp === "p2")
|
|
continue;
|
|
|
|
sum += o[p][pp];
|
|
}
|
|
}
|
|
else {
|
|
sum += o[p];
|
|
}
|
|
}
|
|
|
|
assert(sum === 110);
|
|
})();
|
|
|
|
(function tc_12_07__013() {
|
|
var sum = 0, i = 0;
|
|
|
|
DoWhileLabel:
|
|
do
|
|
{
|
|
if (i === 5)
|
|
{
|
|
continue DoWhileLabel;
|
|
}
|
|
|
|
sum += i;
|
|
}
|
|
while (++i < 10);
|
|
|
|
assert(sum === 40);
|
|
})();
|
|
|
|
(function tc_12_07__010() {
|
|
var sum = 0;
|
|
var i = 0, j = 0;
|
|
top:
|
|
while (i++ < 10)
|
|
{
|
|
j = 0;
|
|
while (j++ < 20)
|
|
{
|
|
if (j > 9 && i % 2)
|
|
continue top;
|
|
|
|
sum += 1;
|
|
}
|
|
|
|
sum += 1;
|
|
}
|
|
|
|
assert(sum === 150);
|
|
})();
|
|
|
|
(function tc_12_07__007() {
|
|
var mask = 0xff0f;
|
|
var numZeroes = 0;
|
|
|
|
while (mask)
|
|
{
|
|
mask >>= 1;
|
|
|
|
if (mask & 1)
|
|
continue;
|
|
|
|
numZeroes++;
|
|
}
|
|
|
|
assert(numZeroes === 5);
|
|
})();
|
|
|
|
(function tc_12_07__011() {
|
|
var mask = 0xff0f;
|
|
var numZeroes = 0;
|
|
|
|
do
|
|
{
|
|
mask >>= 1;
|
|
|
|
if (mask & 1)
|
|
continue;
|
|
|
|
numZeroes++;
|
|
} while (mask);
|
|
|
|
assert(numZeroes === 5);
|
|
})();
|
|
|
|
(function tc_12_07__005() {
|
|
var sum = 0;
|
|
|
|
ForLabel:
|
|
for (var i = 0; i < 10; i++)
|
|
{
|
|
if (i === 5)
|
|
{
|
|
continue ForLabel;
|
|
}
|
|
|
|
sum += i;
|
|
}
|
|
|
|
assert(sum === 40);
|
|
})();
|
|
|
|
(function tc_12_07__014() {
|
|
var sum = 0;
|
|
var i = 0, j = 0;
|
|
top:
|
|
do
|
|
{
|
|
j = 0;
|
|
|
|
do
|
|
{
|
|
if (j > 9 && i % 2)
|
|
continue top;
|
|
|
|
sum += 1;
|
|
}
|
|
while (j++ < 20);
|
|
|
|
sum += 1;
|
|
}
|
|
while (i++ < 10);
|
|
|
|
assert(sum === 182);
|
|
})();
|