blob: a4353a516f65fa5c8c5b597d4edd147b12ce95e7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/*
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/licenses/publicdomain/
*/
//-----------------------------------------------------------------------------
var BUGNUMBER = 1288460;
var summary =
"|let| and |static| are forbidden as Identifier only in strict mode code, " +
"and it's permissible to use them as Identifier (with or without " +
"containing escapes) in non-strict code";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
function t(code)
{
var strictSemi = " 'use strict'; " + code;
var strictASI = " 'use strict' \n " + code;
var creationFunctions = [Function];
if (typeof evaluate === "function")
creationFunctions.push(evaluate);
if (typeof parseModule === "function")
creationFunctions.push(parseModule);
for (var func of creationFunctions)
{
if (typeof parseModule === "function" && func === parseModule)
assertThrowsInstanceOf(() => func(code), SyntaxError);
else
func(code);
assertThrowsInstanceOf(() => func(strictSemi), SyntaxError);
assertThrowsInstanceOf(() => func(strictASI), SyntaxError);
}
}
t("l\\u0065t: 42;");
t("if (1) l\\u0065t: 42;");
t("l\\u0065t = 42;");
t("if (1) l\\u0065t = 42;");
t("st\\u0061tic: 42;");
t("if (1) st\\u0061tic: 42;");
t("st\\u0061tic = 42;");
t("if (1) st\\u0061tic = 42;");
/******************************************************************************/
if (typeof reportCompare === "function")
reportCompare(true, true);
print("Tests complete");
|