Chromium Code Reviews| Index: test/mjsunit/strict-mode.js |
| diff --git a/test/mjsunit/strict-mode.js b/test/mjsunit/strict-mode.js |
| index 14c00e9d434b77af7e21cc7318401c950db3a8c3..842a5ffdbda67bbe72104fb1e248d8069bf45795 100644 |
| --- a/test/mjsunit/strict-mode.js |
| +++ b/test/mjsunit/strict-mode.js |
| @@ -145,8 +145,6 @@ function StrictModeNonDuplicate() { |
| var x = { 123: 1, '123.00000000000000000000000000000000000000000000000000000000000000000001' : 2 } |
| } |
| -//CheckStrictMode("", SyntaxError) |
| - |
| // Two getters (non-strict) |
| assertThrows("var x = { get foo() { }, get foo() { } };", SyntaxError) |
| assertThrows("var x = { get foo(){}, get 'foo'(){}};", SyntaxError) |
| @@ -178,3 +176,44 @@ assertThrows("var x = { 'foo': 'data', get foo() { } };", SyntaxError) |
| assertThrows("var x = { get 'foo'() { }, 'foo': 'data' };", SyntaxError) |
| assertThrows("var x = { '12': 1, get '12'(){}};", SyntaxError); |
| assertThrows("var x = { '12': 1, get 12(){}};", SyntaxError); |
| + |
| +// Assignment to eval or arguments |
| +CheckStrictMode("function strict() { eval = undefined; }", SyntaxError) |
| +CheckStrictMode("function strict() { arguments = undefined; }", SyntaxError) |
| +CheckStrictMode("function strict() { print(eval = undefined); }", SyntaxError) |
| +CheckStrictMode("function strict() { print(arguments = undefined); }", SyntaxError) |
| +CheckStrictMode("function strict() { var x = eval = undefined; }", SyntaxError) |
| +CheckStrictMode("function strict() { var x = arguments = undefined; }", SyntaxError) |
| + |
|
Lasse Reichstein
2011/01/26 08:03:59
Try a compound assignment operator as well, e.g.,
Martin Maly
2011/01/26 19:19:33
Done.
|
| +// Postfix increment with eval or arguments |
| +CheckStrictMode("function strict() { eval++; }", SyntaxError) |
| +CheckStrictMode("function strict() { arguments++; }", SyntaxError) |
| +CheckStrictMode("function strict() { print(eval++); }", SyntaxError) |
| +CheckStrictMode("function strict() { print(arguments++); }", SyntaxError) |
| +CheckStrictMode("function strict() { var x = eval++; }", SyntaxError) |
| +CheckStrictMode("function strict() { var x = arguments++; }", SyntaxError) |
| + |
| +// Postfix decrement with eval or arguments |
| +CheckStrictMode("function strict() { eval--; }", SyntaxError) |
| +CheckStrictMode("function strict() { arguments--; }", SyntaxError) |
| +CheckStrictMode("function strict() { print(eval--); }", SyntaxError) |
| +CheckStrictMode("function strict() { print(arguments--); }", SyntaxError) |
| +CheckStrictMode("function strict() { var x = eval--; }", SyntaxError) |
| +CheckStrictMode("function strict() { var x = arguments--; }", SyntaxError) |
| + |
| +// Prefix increment with eval or arguments |
| +CheckStrictMode("function strict() { ++eval; }", SyntaxError) |
| +CheckStrictMode("function strict() { ++arguments; }", SyntaxError) |
| +CheckStrictMode("function strict() { print(++eval); }", SyntaxError) |
| +CheckStrictMode("function strict() { print(++arguments); }", SyntaxError) |
| +CheckStrictMode("function strict() { var x = ++eval; }", SyntaxError) |
| +CheckStrictMode("function strict() { var x = ++arguments; }", SyntaxError) |
| + |
| +// Prefix decrement with eval or arguments |
| +CheckStrictMode("function strict() { --eval; }", SyntaxError) |
| +CheckStrictMode("function strict() { --arguments; }", SyntaxError) |
| +CheckStrictMode("function strict() { print(--eval); }", SyntaxError) |
| +CheckStrictMode("function strict() { print(--arguments); }", SyntaxError) |
| +CheckStrictMode("function strict() { var x = --eval; }", SyntaxError) |
| +CheckStrictMode("function strict() { var x = --arguments; }", SyntaxError) |
|
Lasse Reichstein
2011/01/26 08:03:59
Check that not-lvalue-operand operators doesn't th
Martin Maly
2011/01/26 19:19:33
Done.
|
| + |