mirror of
https://github.com/tc39/test262.git
synced 2025-07-29 00:44:32 +02:00
commit
13ebbebfd6
@ -5,7 +5,6 @@
|
|||||||
info: Array.prototype.splice sets `length` on `this`
|
info: Array.prototype.splice sets `length` on `this`
|
||||||
es5id: 15.4.4.12_A6.1_T2
|
es5id: 15.4.4.12_A6.1_T2
|
||||||
description: Array.prototype.splice throws if `length` is read-only
|
description: Array.prototype.splice throws if `length` is read-only
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var a = [0, 1, 2];
|
var a = [0, 1, 2];
|
||||||
@ -14,4 +13,6 @@ Object.defineProperty(a, 'length', {
|
|||||||
writable: false
|
writable: false
|
||||||
});
|
});
|
||||||
|
|
||||||
a.splice(1, 2, 4);
|
assert.throws(TypeError, function() {
|
||||||
|
a.splice(1, 2, 4);
|
||||||
|
});
|
||||||
|
@ -9,10 +9,11 @@ es5id: 15.3.5-2gs
|
|||||||
description: >
|
description: >
|
||||||
StrictMode - error is thrown when reading the 'caller' property of
|
StrictMode - error is thrown when reading the 'caller' property of
|
||||||
a function object
|
a function object
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function _15_3_5_1_gs() {}
|
function _15_3_5_1_gs() {}
|
||||||
_15_3_5_1_gs.caller;
|
|
||||||
throw NotEarlyError;
|
assert.throws(TypeError, function() {
|
||||||
|
_15_3_5_1_gs.caller;
|
||||||
|
});
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (New'ed Function constructor includes strict
|
non-strict function (New'ed Function constructor includes strict
|
||||||
directive prologue)
|
directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var f = new Function("\"use strict\";\nreturn gNonStrict();");
|
var f = new Function("\"use strict\";\nreturn gNonStrict();");
|
||||||
f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -9,11 +9,12 @@ es5id: 15.3.5.4_2-11gs
|
|||||||
description: >
|
description: >
|
||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (eval used within strict mode)
|
strict function (eval used within strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
eval("gNonStrict();");
|
assert.throws(TypeError, function() {
|
||||||
|
eval("gNonStrict();");
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
|
@ -9,13 +9,14 @@ es5id: 15.3.5.4_2-13gs
|
|||||||
description: >
|
description: >
|
||||||
Strict mode - checking access to non-strict function caller from
|
Strict mode - checking access to non-strict function caller from
|
||||||
strict function (indirect eval used within strict mode)
|
strict function (indirect eval used within strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var my_eval = eval;
|
var my_eval = eval;
|
||||||
my_eval("gNonStrict();");
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
my_eval("gNonStrict();");
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,15 +10,16 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (New'ed object from FunctionDeclaration defined
|
strict function (New'ed object from FunctionDeclaration defined
|
||||||
within strict mode)
|
within strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() {
|
function f() {
|
||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
}
|
}
|
||||||
new f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
new f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (New'ed object from FunctionDeclaration
|
non-strict function (New'ed object from FunctionDeclaration
|
||||||
includes strict directive prologue)
|
includes strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -18,8 +17,10 @@ function f() {
|
|||||||
"use strict";
|
"use strict";
|
||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
}
|
}
|
||||||
new f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
new f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,15 +10,16 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (New'ed object from FunctionExpression defined
|
strict function (New'ed object from FunctionExpression defined
|
||||||
within strict mode)
|
within strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var f = function () {
|
var f = function () {
|
||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
}
|
}
|
||||||
new f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
new f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (New'ed object from FunctionExpression
|
non-strict function (New'ed object from FunctionExpression
|
||||||
includes strict directive prologue)
|
includes strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -18,8 +17,10 @@ var f = function () {
|
|||||||
"use strict";
|
"use strict";
|
||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
}
|
}
|
||||||
new f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
new f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,15 +10,15 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (New'ed object from Anonymous FunctionExpression
|
strict function (New'ed object from Anonymous FunctionExpression
|
||||||
defined within strict mode)
|
defined within strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = new (function () {
|
assert.throws(TypeError, function() {
|
||||||
return gNonStrict();
|
var obj = new (function () {
|
||||||
|
return gNonStrict();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
}
|
}
|
||||||
|
@ -9,15 +9,16 @@ es5id: 15.3.5.4_2-1gs
|
|||||||
description: >
|
description: >
|
||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (FunctionDeclaration defined within strict mode)
|
strict function (FunctionDeclaration defined within strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() {
|
function f() {
|
||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
}
|
}
|
||||||
f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (New'ed object from Anonymous
|
non-strict function (New'ed object from Anonymous
|
||||||
FunctionExpression includes strict directive prologue)
|
FunctionExpression includes strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = new (function () {
|
assert.throws(TypeError, function() {
|
||||||
"use strict";
|
var obj = new (function () {
|
||||||
return gNonStrict();
|
"use strict";
|
||||||
|
return gNonStrict();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (FunctionDeclaration defined within a
|
strict function (FunctionDeclaration defined within a
|
||||||
FunctionDeclaration inside strict mode)
|
FunctionDeclaration inside strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -20,8 +19,10 @@ function f1() {
|
|||||||
}
|
}
|
||||||
return f();
|
return f();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (FunctionExpression defined within a
|
strict function (FunctionExpression defined within a
|
||||||
FunctionDeclaration inside strict mode)
|
FunctionDeclaration inside strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -20,8 +19,10 @@ function f1() {
|
|||||||
}
|
}
|
||||||
return f();
|
return f();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (Anonymous FunctionExpression defined within a
|
strict function (Anonymous FunctionExpression defined within a
|
||||||
FunctionDeclaration inside strict mode)
|
FunctionDeclaration inside strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -19,8 +18,10 @@ function f1() {
|
|||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (FunctionDeclaration defined within a
|
strict function (FunctionDeclaration defined within a
|
||||||
FunctionExpression inside strict mode)
|
FunctionExpression inside strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -20,7 +19,10 @@ var f1 = function () {
|
|||||||
}
|
}
|
||||||
return f();
|
return f();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (FunctionExpression defined within a
|
strict function (FunctionExpression defined within a
|
||||||
FunctionExpression inside strict mode)
|
FunctionExpression inside strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -20,8 +19,10 @@ var f1 = function () {
|
|||||||
}
|
}
|
||||||
return f();
|
return f();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (Anonymous FunctionExpression defined within a
|
strict function (Anonymous FunctionExpression defined within a
|
||||||
FunctionExpression inside strict mode)
|
FunctionExpression inside strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -19,8 +18,10 @@ var f1 = function () {
|
|||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,17 +10,17 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (FunctionDeclaration defined within an Anonymous
|
strict function (FunctionDeclaration defined within an Anonymous
|
||||||
FunctionExpression inside strict mode)
|
FunctionExpression inside strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
(function () {
|
assert.throws(TypeError, function() {
|
||||||
function f() {
|
(function () {
|
||||||
return gNonStrict();
|
function f() {
|
||||||
}
|
return gNonStrict();
|
||||||
return f();
|
}
|
||||||
})();
|
return f();
|
||||||
|
})();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,16 +10,17 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (FunctionExpression defined within an Anonymous
|
strict function (FunctionExpression defined within an Anonymous
|
||||||
FunctionExpression inside strict mode)
|
FunctionExpression inside strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
(function () {
|
assert.throws(TypeError, function() {
|
||||||
var f = function () {
|
(function () {
|
||||||
return gNonStrict();
|
var f = function () {
|
||||||
}
|
return gNonStrict();
|
||||||
return f();
|
}
|
||||||
})();
|
return f();
|
||||||
|
})();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
|
@ -10,16 +10,16 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (Anonymous FunctionExpression defined within an
|
strict function (Anonymous FunctionExpression defined within an
|
||||||
Anonymous FunctionExpression inside strict mode)
|
Anonymous FunctionExpression inside strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
(function () {
|
assert.throws(TypeError, function() {
|
||||||
return (function () {
|
(function () {
|
||||||
return gNonStrict();
|
return (function () {
|
||||||
|
return gNonStrict();
|
||||||
|
})();
|
||||||
})();
|
})();
|
||||||
})();
|
});
|
||||||
|
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionDeclaration includes strict directive
|
non-strict function (FunctionDeclaration includes strict directive
|
||||||
prologue)
|
prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -18,8 +17,10 @@ function f() {
|
|||||||
"use strict";
|
"use strict";
|
||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
}
|
}
|
||||||
f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionDeclaration defined within a
|
non-strict function (FunctionDeclaration defined within a
|
||||||
FunctionDeclaration with a strict directive prologue)
|
FunctionDeclaration with a strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -21,8 +20,10 @@ function f1() {
|
|||||||
}
|
}
|
||||||
return f();
|
return f();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionExpression defined within a
|
non-strict function (FunctionExpression defined within a
|
||||||
FunctionDeclaration with a strict directive prologue)
|
FunctionDeclaration with a strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -21,8 +20,10 @@ function f1() {
|
|||||||
}
|
}
|
||||||
return f();
|
return f();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (Anonymous FunctionExpression defined within a
|
non-strict function (Anonymous FunctionExpression defined within a
|
||||||
FunctionDeclaration with a strict directive prologue)
|
FunctionDeclaration with a strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -20,8 +19,10 @@ function f1() {
|
|||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionDeclaration defined within a
|
non-strict function (FunctionDeclaration defined within a
|
||||||
FunctionExpression with a strict directive prologue)
|
FunctionExpression with a strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -21,8 +20,10 @@ var f1 = function () {
|
|||||||
}
|
}
|
||||||
return f();
|
return f();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionExpression defined within a
|
non-strict function (FunctionExpression defined within a
|
||||||
FunctionExpression with a strict directive prologue)
|
FunctionExpression with a strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -21,8 +20,10 @@ var f1 = function () {
|
|||||||
}
|
}
|
||||||
return f();
|
return f();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (Anonymous FunctionExpression defined within a
|
non-strict function (Anonymous FunctionExpression defined within a
|
||||||
FunctionExpression with a strict directive prologue)
|
FunctionExpression with a strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -20,8 +19,10 @@ var f1 = function () {
|
|||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,18 +10,18 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionDeclaration defined within an
|
non-strict function (FunctionDeclaration defined within an
|
||||||
Anonymous FunctionExpression with a strict directive prologue)
|
Anonymous FunctionExpression with a strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
(function () {
|
assert.throws(TypeError, function() {
|
||||||
"use strict";
|
(function () {
|
||||||
function f() {
|
"use strict";
|
||||||
return gNonStrict();
|
function f() {
|
||||||
}
|
return gNonStrict();
|
||||||
return f();
|
}
|
||||||
})();
|
return f();
|
||||||
|
})();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,18 +10,18 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionExpression defined within an
|
non-strict function (FunctionExpression defined within an
|
||||||
Anonymous FunctionExpression with a strict directive prologue)
|
Anonymous FunctionExpression with a strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
(function () {
|
assert.throws(TypeError, function() {
|
||||||
"use strict";
|
(function () {
|
||||||
var f = function () {
|
"use strict";
|
||||||
return gNonStrict();
|
var f = function () {
|
||||||
}
|
return gNonStrict();
|
||||||
return f();
|
}
|
||||||
})();
|
return f();
|
||||||
|
})();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,17 +10,17 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (Anonymous FunctionExpression defined within
|
non-strict function (Anonymous FunctionExpression defined within
|
||||||
an Anonymous FunctionExpression with a strict directive prologue)
|
an Anonymous FunctionExpression with a strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
(function () {
|
assert.throws(TypeError, function() {
|
||||||
"use strict";
|
(function () {
|
||||||
return (function () {
|
"use strict";
|
||||||
return gNonStrict();
|
return (function () {
|
||||||
|
return gNonStrict();
|
||||||
|
})();
|
||||||
})();
|
})();
|
||||||
})();
|
});
|
||||||
|
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionDeclaration with a strict directive
|
non-strict function (FunctionDeclaration with a strict directive
|
||||||
prologue defined within a FunctionDeclaration)
|
prologue defined within a FunctionDeclaration)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -22,8 +21,10 @@ function f1() {
|
|||||||
}
|
}
|
||||||
return f();
|
return f();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -9,15 +9,16 @@ es5id: 15.3.5.4_2-3gs
|
|||||||
description: >
|
description: >
|
||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (FunctionExpression defined within strict mode)
|
strict function (FunctionExpression defined within strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var f = function () {
|
var f = function () {
|
||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
}
|
}
|
||||||
f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionExpression with a strict directive
|
non-strict function (FunctionExpression with a strict directive
|
||||||
prologue defined within a FunctionDeclaration)
|
prologue defined within a FunctionDeclaration)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -22,8 +21,10 @@ function f1() {
|
|||||||
}
|
}
|
||||||
return f();
|
return f();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (Anonymous FunctionExpression with a strict
|
non-strict function (Anonymous FunctionExpression with a strict
|
||||||
directive prologue defined within a FunctionDeclaration)
|
directive prologue defined within a FunctionDeclaration)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -21,8 +20,10 @@ function f1() {
|
|||||||
return r;
|
return r;
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionDeclaration with a strict directive
|
non-strict function (FunctionDeclaration with a strict directive
|
||||||
prologue defined within a FunctionExpression)
|
prologue defined within a FunctionExpression)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -22,8 +21,10 @@ var f1 = function () {
|
|||||||
}
|
}
|
||||||
return f();
|
return f();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionExpression with a strict directive
|
non-strict function (FunctionExpression with a strict directive
|
||||||
prologue defined within a FunctionExpression)
|
prologue defined within a FunctionExpression)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -22,8 +21,10 @@ var f1 = function () {
|
|||||||
}
|
}
|
||||||
return f();
|
return f();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (Anonymous FunctionExpression with a strict
|
non-strict function (Anonymous FunctionExpression with a strict
|
||||||
directive prologue defined within a FunctionExpression)
|
directive prologue defined within a FunctionExpression)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -21,8 +20,10 @@ var f1 = function () {
|
|||||||
return r;
|
return r;
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
f1();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f1();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,19 +10,19 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionDeclaration with a strict directive
|
non-strict function (FunctionDeclaration with a strict directive
|
||||||
prologue defined within an Anonymous FunctionExpression)
|
prologue defined within an Anonymous FunctionExpression)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
(function () {
|
assert.throws(TypeError, function() {
|
||||||
function f() {
|
(function () {
|
||||||
"use strict";
|
function f() {
|
||||||
var r = gNonStrict();
|
"use strict";
|
||||||
return r;
|
var r = gNonStrict();
|
||||||
}
|
return r;
|
||||||
return f();
|
}
|
||||||
})();
|
return f();
|
||||||
|
})();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,19 +10,19 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionExpression with a strict directive
|
non-strict function (FunctionExpression with a strict directive
|
||||||
prologue defined within an Anonymous FunctionExpression)
|
prologue defined within an Anonymous FunctionExpression)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
(function () {
|
assert.throws(TypeError, function() {
|
||||||
var f = function () {
|
(function () {
|
||||||
"use strict";
|
var f = function () {
|
||||||
var r = gNonStrict();
|
"use strict";
|
||||||
return r;
|
var r = gNonStrict();
|
||||||
}
|
return r;
|
||||||
return f();
|
}
|
||||||
})();
|
return f();
|
||||||
|
})();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,17 +10,18 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (Anonymous FunctionExpression with a strict
|
non-strict function (Anonymous FunctionExpression with a strict
|
||||||
directive prologue defined within an Anonymous FunctionExpression)
|
directive prologue defined within an Anonymous FunctionExpression)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
(function () {
|
assert.throws(TypeError, function() {
|
||||||
return (function () {
|
(function () {
|
||||||
"use strict";
|
return (function () {
|
||||||
var r = gNonStrict();
|
"use strict";
|
||||||
return r;
|
var r = gNonStrict();
|
||||||
|
return r;
|
||||||
|
})();
|
||||||
})();
|
})();
|
||||||
})();
|
});
|
||||||
|
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
|
@ -9,13 +9,14 @@ es5id: 15.3.5.4_2-48gs
|
|||||||
description: >
|
description: >
|
||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (Literal getter defined within strict mode)
|
strict function (Literal getter defined within strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var o = { get foo() { return gNonStrict(); } }
|
var o = { get foo() { return gNonStrict(); } }
|
||||||
o.foo;
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
o.foo;
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (Literal getter includes strict directive
|
non-strict function (Literal getter includes strict directive
|
||||||
prologue)
|
prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var o = { get foo() { "use strict"; return gNonStrict(); } }
|
var o = { get foo() { "use strict"; return gNonStrict(); } }
|
||||||
o.foo;
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
o.foo;
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (FunctionExpression includes strict directive
|
non-strict function (FunctionExpression includes strict directive
|
||||||
prologue)
|
prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -18,8 +17,10 @@ var f = function () {
|
|||||||
"use strict";
|
"use strict";
|
||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
}
|
}
|
||||||
f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -9,13 +9,14 @@ es5id: 15.3.5.4_2-50gs
|
|||||||
description: >
|
description: >
|
||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (Literal setter defined within strict mode)
|
strict function (Literal setter defined within strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var o = { set foo(stuff) { return gNonStrict(); } }
|
var o = { set foo(stuff) { return gNonStrict(); } }
|
||||||
o.foo = 7;
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
o.foo = 7;
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (Literal setter includes strict directive
|
non-strict function (Literal setter includes strict directive
|
||||||
prologue)
|
prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var o = { set foo(stuff) { "use strict"; return gNonStrict(); } }
|
var o = { set foo(stuff) { "use strict"; return gNonStrict(); } }
|
||||||
o.foo = 8;
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
o.foo = 8;
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -9,14 +9,15 @@ es5id: 15.3.5.4_2-52gs
|
|||||||
description: >
|
description: >
|
||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (Injected getter defined within strict mode)
|
strict function (Injected getter defined within strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var o = {};
|
var o = {};
|
||||||
Object.defineProperty(o, "foo", { get: function() { return gNonStrict(); } });
|
Object.defineProperty(o, "foo", { get: function() { return gNonStrict(); } });
|
||||||
o.foo;
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
o.foo;
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,14 +10,15 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (Injected getter includes strict directive
|
non-strict function (Injected getter includes strict directive
|
||||||
prologue)
|
prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var o = {};
|
var o = {};
|
||||||
Object.defineProperty(o, "foo", { get: function() { "use strict"; return gNonStrict(); } });
|
Object.defineProperty(o, "foo", { get: function() { "use strict"; return gNonStrict(); } });
|
||||||
o.foo;
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
o.foo;
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -9,14 +9,15 @@ es5id: 15.3.5.4_2-54gs
|
|||||||
description: >
|
description: >
|
||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (Injected setter defined within strict mode)
|
strict function (Injected setter defined within strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var o = {};
|
var o = {};
|
||||||
Object.defineProperty(o, "foo", { set: function(stuff) { return gNonStrict(); } });
|
Object.defineProperty(o, "foo", { set: function(stuff) { return gNonStrict(); } });
|
||||||
o.foo = 9;
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
o.foo = 9;
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,14 +10,15 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (Injected setter includes strict directive
|
non-strict function (Injected setter includes strict directive
|
||||||
prologue)
|
prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var o = {};
|
var o = {};
|
||||||
Object.defineProperty(o, "foo", { set: function(stuff) { "use strict"; return gNonStrict(); } });
|
Object.defineProperty(o, "foo", { set: function(stuff) { "use strict"; return gNonStrict(); } });
|
||||||
o.foo = 10;
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
o.foo = 10;
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,14 +10,15 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
non-strict function declaration)
|
non-strict function declaration)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; var r = gNonStrict(); return r;};
|
function f() { "use strict"; var r = gNonStrict(); return r;};
|
||||||
function foo() { return f();}
|
function foo() { return f();}
|
||||||
foo();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
foo();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
non-strict eval)
|
non-strict eval)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
eval("f();");
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
eval("f();");
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
non-strict Function constructor)
|
non-strict Function constructor)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; var r = gNonStrict(); return r;};
|
function f() { "use strict"; var r = gNonStrict(); return r;};
|
||||||
Function("return f();")();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
Function("return f();")();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
non-strict new'ed Function constructor)
|
non-strict new'ed Function constructor)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; var r = gNonStrict(); return r;};
|
function f() { "use strict"; var r = gNonStrict(); return r;};
|
||||||
new Function("return f();")();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
new Function("return f();")();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,14 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
strict function (Anonymous FunctionExpression defined within
|
strict function (Anonymous FunctionExpression defined within
|
||||||
strict mode)
|
strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
(function () {
|
assert.throws(TypeError, function() {
|
||||||
return gNonStrict();
|
(function () {
|
||||||
})();
|
return gNonStrict();
|
||||||
|
})();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.apply())
|
Function.prototype.apply())
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
f.apply();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.apply();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.apply(null))
|
Function.prototype.apply(null))
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
f.apply(null);
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.apply(null);
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.apply(undefined))
|
Function.prototype.apply(undefined))
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
f.apply(undefined);
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.apply(undefined);
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,14 +10,15 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.apply(someObject))
|
Function.prototype.apply(someObject))
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
var o = {};
|
var o = {};
|
||||||
f.apply(o);
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.apply(o);
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,14 +10,15 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.apply(globalObject))
|
Function.prototype.apply(globalObject))
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
includes: [fnGlobalObject.js]
|
includes: [fnGlobalObject.js]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
f.apply(fnGlobalObject());
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.apply(fnGlobalObject());
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.call())
|
Function.prototype.call())
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
f.call();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.call();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.call(null))
|
Function.prototype.call(null))
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
f.call(null);
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.call(null);
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.call(undefined))
|
Function.prototype.call(undefined))
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
f.call(undefined);
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.call(undefined);
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,14 +10,15 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.call(someObject))
|
Function.prototype.call(someObject))
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
var o = {};
|
var o = {};
|
||||||
f.call(o);
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.call(o);
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,14 +10,15 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.call(globalObject))
|
Function.prototype.call(globalObject))
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
includes: [fnGlobalObject.js]
|
includes: [fnGlobalObject.js]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
f.call(fnGlobalObject());
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.call(fnGlobalObject());
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,14 +10,15 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (Anonymous FunctionExpression includes strict
|
non-strict function (Anonymous FunctionExpression includes strict
|
||||||
directive prologue)
|
directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
(function () {
|
assert.throws(TypeError, function() {
|
||||||
"use strict";
|
(function () {
|
||||||
return gNonStrict();
|
"use strict";
|
||||||
})();
|
return gNonStrict();
|
||||||
|
})();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.bind()())
|
Function.prototype.bind()())
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
f.bind()();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.bind()();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.bind(null)())
|
Function.prototype.bind(null)())
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
f.bind(null)();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.bind(null)();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.bind(undefined)())
|
Function.prototype.bind(undefined)())
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
f.bind(undefined)();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.bind(undefined)();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,14 +10,15 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.bind(someObject)())
|
Function.prototype.bind(someObject)())
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
var o = {};
|
var o = {};
|
||||||
f.bind(o)();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.bind(o)();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,14 +10,15 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (strict function declaration called by
|
non-strict function (strict function declaration called by
|
||||||
Function.prototype.bind(globalObject)())
|
Function.prototype.bind(globalObject)())
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
includes: [fnGlobalObject.js]
|
includes: [fnGlobalObject.js]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function f() { "use strict"; return gNonStrict();};
|
function f() { "use strict"; return gNonStrict();};
|
||||||
f.bind(fnGlobalObject())();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f.bind(fnGlobalObject())();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -9,13 +9,14 @@ es5id: 15.3.5.4_2-7gs
|
|||||||
description: >
|
description: >
|
||||||
Strict mode - checking access to non-strict function caller from
|
Strict mode - checking access to non-strict function caller from
|
||||||
strict function (Function constructor defined within strict mode)
|
strict function (Function constructor defined within strict mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var f = Function("return gNonStrict();");
|
var f = Function("return gNonStrict();");
|
||||||
f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function (Function constructor includes strict
|
non-strict function (Function constructor includes strict
|
||||||
directive prologue)
|
directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var f = Function("\"use strict\";\nreturn gNonStrict();");
|
var f = Function("\"use strict\";\nreturn gNonStrict();");
|
||||||
f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
return gNonStrict.caller || gNonStrict.caller.throwTypeError;
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict function expression (FunctionDeclaration includes
|
non-strict function expression (FunctionDeclaration includes
|
||||||
strict directive prologue)
|
strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -22,4 +21,7 @@ function f() {
|
|||||||
"use strict";
|
"use strict";
|
||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
}
|
}
|
||||||
f();
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict, constructor-based function (FunctionDeclaration
|
non-strict, constructor-based function (FunctionDeclaration
|
||||||
includes strict directive prologue)
|
includes strict directive prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -20,4 +19,7 @@ function f() {
|
|||||||
"use strict";
|
"use strict";
|
||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
}
|
}
|
||||||
f();
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from
|
Strict mode - checking access to strict function caller from
|
||||||
non-strict property (FunctionDeclaration includes strict directive
|
non-strict property (FunctionDeclaration includes strict directive
|
||||||
prologue)
|
prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -26,4 +25,7 @@ function f() {
|
|||||||
"use strict";
|
"use strict";
|
||||||
return o.gNonStrict;
|
return o.gNonStrict;
|
||||||
}
|
}
|
||||||
f();
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
@ -10,7 +10,6 @@ description: >
|
|||||||
Strict mode - checking access to strict function caller from bound
|
Strict mode - checking access to strict function caller from bound
|
||||||
non-strict function (FunctionDeclaration includes strict directive
|
non-strict function (FunctionDeclaration includes strict directive
|
||||||
prologue)
|
prologue)
|
||||||
negative: TypeError
|
|
||||||
flags: [noStrict]
|
flags: [noStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
@ -20,8 +19,10 @@ function f() {
|
|||||||
"use strict";
|
"use strict";
|
||||||
return gNonStrict();
|
return gNonStrict();
|
||||||
}
|
}
|
||||||
f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrictBindee() {
|
function gNonStrictBindee() {
|
||||||
return gNonStrictBindee.caller || gNonStrictBindee.caller.throwTypeError;
|
return gNonStrictBindee.caller || gNonStrictBindee.caller.throwTypeError;
|
||||||
|
@ -10,13 +10,14 @@ description: >
|
|||||||
Strict mode - checking access to non-strict function caller from
|
Strict mode - checking access to non-strict function caller from
|
||||||
strict function (New'ed Function constructor defined within strict
|
strict function (New'ed Function constructor defined within strict
|
||||||
mode)
|
mode)
|
||||||
negative: TypeError
|
|
||||||
flags: [onlyStrict]
|
flags: [onlyStrict]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var f = new Function("return gNonStrict();");
|
var f = new Function("return gNonStrict();");
|
||||||
f();
|
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
|
||||||
function gNonStrict() {
|
function gNonStrict() {
|
||||||
return gNonStrict.caller;
|
return gNonStrict.caller;
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
/*---
|
/*---
|
||||||
es5id: 15.3.4.3_A13
|
es5id: 15.3.4.3_A13
|
||||||
description: If IsCallable(func) is false, then throw a TypeError exception.
|
description: If IsCallable(func) is false, then throw a TypeError exception.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.apply.call(undefined, {}, []);
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.apply.call(undefined, {}, []);
|
||||||
|
});
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
/*---
|
/*---
|
||||||
es5id: 15.3.4.3_A14
|
es5id: 15.3.4.3_A14
|
||||||
description: If IsCallable(func) is false, then throw a TypeError exception.
|
description: If IsCallable(func) is false, then throw a TypeError exception.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.apply.call(null, {}, []);
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.apply.call(null, {}, []);
|
||||||
|
});
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
/*---
|
/*---
|
||||||
es5id: 15.3.4.3_A15
|
es5id: 15.3.4.3_A15
|
||||||
description: If IsCallable(func) is false, then throw a TypeError exception.
|
description: If IsCallable(func) is false, then throw a TypeError exception.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.apply.call({}, {}, []);
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.apply.call({}, {}, []);
|
||||||
|
});
|
||||||
|
@ -5,10 +5,12 @@
|
|||||||
info: "\"caller\" of bound function is poisoned (step 20)"
|
info: "\"caller\" of bound function is poisoned (step 20)"
|
||||||
es5id: 15.3.4.5_A1
|
es5id: 15.3.4.5_A1
|
||||||
description: A bound function should fail to find its "caller"
|
description: A bound function should fail to find its "caller"
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function foo() { return bar.caller; }
|
function foo() { return bar.caller; }
|
||||||
var bar = foo.bind({});
|
var bar = foo.bind({});
|
||||||
function baz() { return bar(); }
|
function baz() { return bar(); }
|
||||||
baz();
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
baz();
|
||||||
|
});
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
/*---
|
/*---
|
||||||
es5id: 15.3.4.5_A13
|
es5id: 15.3.4.5_A13
|
||||||
description: If IsCallable(func) is false, then throw a TypeError exception.
|
description: If IsCallable(func) is false, then throw a TypeError exception.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.bind.call(undefined, {});
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.bind.call(undefined, {});
|
||||||
|
});
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
/*---
|
/*---
|
||||||
es5id: 15.3.4.5_A14
|
es5id: 15.3.4.5_A14
|
||||||
description: If IsCallable(func) is false, then throw a TypeError exception.
|
description: If IsCallable(func) is false, then throw a TypeError exception.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.bind.call(null, {});
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.bind.call(null, {});
|
||||||
|
});
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
/*---
|
/*---
|
||||||
es5id: 15.3.4.5_A15
|
es5id: 15.3.4.5_A15
|
||||||
description: If IsCallable(func) is false, then throw a TypeError exception.
|
description: If IsCallable(func) is false, then throw a TypeError exception.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.bind.call({}, {});
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.bind.call({}, {});
|
||||||
|
});
|
||||||
|
@ -5,10 +5,12 @@
|
|||||||
info: "\"arguments\" of bound function is poisoned (step 21)"
|
info: "\"arguments\" of bound function is poisoned (step 21)"
|
||||||
es5id: 15.3.4.5_A2
|
es5id: 15.3.4.5_A2
|
||||||
description: a bound function should fail to find the bound function "arguments"
|
description: a bound function should fail to find the bound function "arguments"
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
function foo() { return bar.arguments; }
|
function foo() { return bar.arguments; }
|
||||||
var bar = foo.bind({});
|
var bar = foo.bind({});
|
||||||
function baz() { return bar(); }
|
function baz() { return bar(); }
|
||||||
baz();
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
baz();
|
||||||
|
});
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
/*---
|
/*---
|
||||||
es5id: 15.3.4.4_A13
|
es5id: 15.3.4.4_A13
|
||||||
description: If IsCallable(func) is false, then throw a TypeError exception.
|
description: If IsCallable(func) is false, then throw a TypeError exception.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.call.call(undefined, {});
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.call.call(undefined, {});
|
||||||
|
});
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
/*---
|
/*---
|
||||||
es5id: 15.3.4.4_A14
|
es5id: 15.3.4.4_A14
|
||||||
description: If IsCallable(func) is false, then throw a TypeError exception.
|
description: If IsCallable(func) is false, then throw a TypeError exception.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.call.call(null, {});
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.call.call(null, {});
|
||||||
|
});
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
/*---
|
/*---
|
||||||
es5id: 15.3.4.4_A15
|
es5id: 15.3.4.4_A15
|
||||||
description: If IsCallable(func) is false, then throw a TypeError exception.
|
description: If IsCallable(func) is false, then throw a TypeError exception.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.call.call({}, {});
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.call.call({}, {});
|
||||||
|
});
|
||||||
|
@ -6,7 +6,8 @@ es5id: 15.3.4.2_A12
|
|||||||
description: >
|
description: >
|
||||||
The Function.prototype.toString function is not generic; it throws
|
The Function.prototype.toString function is not generic; it throws
|
||||||
a TypeError exception if its this value is not a Function object.
|
a TypeError exception if its this value is not a Function object.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.toString.call(undefined);
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.toString.call(undefined);
|
||||||
|
});
|
||||||
|
@ -6,7 +6,8 @@ es5id: 15.3.4.2_A13
|
|||||||
description: >
|
description: >
|
||||||
The toString function is not generic; it throws a TypeError
|
The toString function is not generic; it throws a TypeError
|
||||||
exception if its this value is not a Function object.
|
exception if its this value is not a Function object.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.toString.call(null);
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.toString.call(null);
|
||||||
|
});
|
||||||
|
@ -6,7 +6,8 @@ es5id: 15.3.4.2_A14
|
|||||||
description: >
|
description: >
|
||||||
The toString function is not generic; it throws a TypeError
|
The toString function is not generic; it throws a TypeError
|
||||||
exception if its this value is not a Function object.
|
exception if its this value is not a Function object.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.toString.call({});
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.toString.call({});
|
||||||
|
});
|
||||||
|
@ -9,7 +9,8 @@ es5id: 15.3.4.2_A15
|
|||||||
description: >
|
description: >
|
||||||
Whether or not they are callable, RegExp objects are not Function
|
Whether or not they are callable, RegExp objects are not Function
|
||||||
objects, so toString should throw a TypeError.
|
objects, so toString should throw a TypeError.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Function.prototype.toString.call(/x/);
|
assert.throws(TypeError, function() {
|
||||||
|
Function.prototype.toString.call(/x/);
|
||||||
|
});
|
||||||
|
@ -10,9 +10,10 @@ description: >
|
|||||||
The String constructor, given an object, should invoke that
|
The String constructor, given an object, should invoke that
|
||||||
object's toString method as a method, i.e., with its this value
|
object's toString method as a method, i.e., with its this value
|
||||||
bound to that object.
|
bound to that object.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {toString: Function.prototype.toString};
|
var obj = {toString: Function.prototype.toString};
|
||||||
|
|
||||||
String(obj);
|
assert.throws(TypeError, function() {
|
||||||
|
String(obj);
|
||||||
|
});
|
||||||
|
@ -6,7 +6,8 @@ es5id: 15.2.4.5_A12
|
|||||||
description: >
|
description: >
|
||||||
Let O be the result of calling ToObject passing the this value as
|
Let O be the result of calling ToObject passing the this value as
|
||||||
the argument.
|
the argument.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Object.prototype.hasOwnProperty.call(undefined, 'foo');
|
assert.throws(TypeError, function() {
|
||||||
|
Object.prototype.hasOwnProperty.call(undefined, 'foo');
|
||||||
|
});
|
||||||
|
@ -6,7 +6,8 @@ es5id: 15.2.4.5_A13
|
|||||||
description: >
|
description: >
|
||||||
Let O be the result of calling ToObject passing the this value as
|
Let O be the result of calling ToObject passing the this value as
|
||||||
the argument.
|
the argument.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Object.prototype.hasOwnProperty.call(null, 'foo');
|
assert.throws(TypeError, function() {
|
||||||
|
Object.prototype.hasOwnProperty.call(null, 'foo');
|
||||||
|
});
|
||||||
|
@ -6,7 +6,8 @@ es5id: 15.2.4.6_A12
|
|||||||
description: >
|
description: >
|
||||||
Let O be the result of calling ToObject passing the this value as
|
Let O be the result of calling ToObject passing the this value as
|
||||||
the argument.
|
the argument.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Object.prototype.isPrototypeOf.call(undefined, {});
|
assert.throws(TypeError, function() {
|
||||||
|
Object.prototype.isPrototypeOf.call(undefined, {});
|
||||||
|
});
|
||||||
|
@ -6,7 +6,8 @@ es5id: 15.2.4.6_A13
|
|||||||
description: >
|
description: >
|
||||||
Let O be the result of calling ToObject passing the this value as
|
Let O be the result of calling ToObject passing the this value as
|
||||||
the argument.
|
the argument.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Object.prototype.isPrototypeOf.call(null, {});
|
assert.throws(TypeError, function() {
|
||||||
|
Object.prototype.isPrototypeOf.call(null, {});
|
||||||
|
});
|
||||||
|
@ -6,7 +6,8 @@ es5id: 15.2.4.7_A12
|
|||||||
description: >
|
description: >
|
||||||
Let O be the result of calling ToObject passing the this value as
|
Let O be the result of calling ToObject passing the this value as
|
||||||
the argument.
|
the argument.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Object.prototype.propertyIsEnumerable.call(undefined, 'foo');
|
assert.throws(TypeError, function() {
|
||||||
|
Object.prototype.propertyIsEnumerable.call(undefined, 'foo');
|
||||||
|
});
|
||||||
|
@ -6,7 +6,8 @@ es5id: 15.2.4.7_A13
|
|||||||
description: >
|
description: >
|
||||||
Let O be the result of calling ToObject passing the this value as
|
Let O be the result of calling ToObject passing the this value as
|
||||||
the argument.
|
the argument.
|
||||||
negative: TypeError
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
Object.prototype.propertyIsEnumerable.call(null, 'foo');
|
assert.throws(TypeError, function() {
|
||||||
|
Object.prototype.propertyIsEnumerable.call(null, 'foo');
|
||||||
|
});
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user