| Index: test/mjsunit/strong/undefined.js
|
| diff --git a/test/mjsunit/strong/undefined.js b/test/mjsunit/strong/undefined.js
|
| deleted file mode 100644
|
| index 218547a192f2dd02553a28504ba4ada4100527a1..0000000000000000000000000000000000000000
|
| --- a/test/mjsunit/strong/undefined.js
|
| +++ /dev/null
|
| @@ -1,200 +0,0 @@
|
| -// Copyright 2014 the V8 project authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// Flags: --strong-mode --harmony-sloppy
|
| -
|
| -// Repurposing the strict mode 'eval' and 'arguments' tests to test for correct
|
| -// behaviour of 'undefined' as an identifier in strong mode.
|
| -"use strict";
|
| -
|
| -function CheckStrongMode(code) {
|
| - let strictContexts = [
|
| - ["'use strict';", ""],
|
| - ["function outer() { 'use strict';", "}"],
|
| - ["function outer() { 'use strict'; function inner() {", "}}"],
|
| - ["class C { m() {", "} }"]
|
| - ]
|
| - let strongContexts = [
|
| - ["'use strong';", ""],
|
| - ["function outer() { 'use strong';", "}"],
|
| - ["function outer() { 'use strong'; function inner() {", "}}"],
|
| - ["class C { m() { 'use strong';", "} }"]
|
| - ]
|
| -
|
| - for (let context of strictContexts) {
|
| - assertThrows(context[0] + code + context[1] + "; throw new TypeError();",
|
| - TypeError);
|
| - }
|
| - for (let context of strongContexts) {
|
| - assertThrows(context[0] + code + context[1], SyntaxError);
|
| - }
|
| -}
|
| -
|
| -// Binding 'undefined'
|
| -CheckStrongMode("var undefined;");
|
| -CheckStrongMode("let undefined;");
|
| -CheckStrongMode("var undefined = 0;");
|
| -CheckStrongMode("let undefined = 0;");
|
| -CheckStrongMode("const undefined = 0;");
|
| -CheckStrongMode("var x, y = 0, undefined;");
|
| -CheckStrongMode("let x, y = 0, undefined;");
|
| -
|
| -// Function identifier is 'undefined'
|
| -// Function declaration
|
| -CheckStrongMode("function undefined() {}");
|
| -assertThrows("function undefined() {'use strong';}", SyntaxError);
|
| -
|
| -// Generator function
|
| -CheckStrongMode("function* undefined() {}");
|
| -assertThrows("function* undefined() {'use strong';}", SyntaxError);
|
| -
|
| -// Function expression
|
| -CheckStrongMode("(function undefined() {});");
|
| -assertThrows("(function undefined() {'use strong';});", SyntaxError);
|
| -CheckStrongMode("{foo: (function undefined(){})};");
|
| -assertThrows("{foo: (function undefined(){'use strong';})};", SyntaxError);
|
| -
|
| -//Generator function expression
|
| -CheckStrongMode("(function* undefined() {})");
|
| -assertThrows("(function* undefined() {'use strong';})", SyntaxError);
|
| -CheckStrongMode("{foo: (function* undefined(){})};");
|
| -assertThrows("{foo: (function* undefined(){'use strong';})};", SyntaxError);
|
| -
|
| -// Function parameter named 'undefined'
|
| -// Function declaration
|
| -CheckStrongMode("function foo(a, b, undefined, c, d) {}");
|
| -assertThrows("function foo(a, b, undefined, c, d) {'use strong';}",
|
| - SyntaxError);
|
| -
|
| -// Generator function declaration
|
| -CheckStrongMode("function* foo(a, b, undefined, c, d) {}");
|
| -assertThrows("function* foo(a, b, undefined, c, d) {'use strong';}",
|
| - SyntaxError);
|
| -
|
| -// Function expression
|
| -CheckStrongMode("(function foo(a, b, undefined, c, d) {});");
|
| -assertThrows("(function foo(a, b, undefined, c, d) {'use strong';})",
|
| - SyntaxError);
|
| -CheckStrongMode("{foo: (function foo(a, b, undefined, c, d) {})};");
|
| -assertThrows("{foo: (function foo(a, b, undefined, c, d) {'use strong';})};",
|
| - SyntaxError);
|
| -
|
| -// Generator function expression
|
| -CheckStrongMode("(function* foo(a, b, undefined, c, d) {});");
|
| -assertThrows("(function* foo(a, b, undefined, c, d) {'use strong';})",
|
| - SyntaxError);
|
| -CheckStrongMode("{foo: (function* foo(a, b, undefined, c, d) {})};");
|
| -assertThrows("{foo: (function* foo(a, b, undefined, c, d) {'use strong';})};",
|
| - SyntaxError);
|
| -
|
| -// Method parameter named 'undefined'
|
| -// Class method
|
| -CheckStrongMode("class C { foo(a, b, undefined, c, d) {} }");
|
| -assertThrows("class C { foo(a, b, undefined, c, d) {'use strong';} }",
|
| - SyntaxError);
|
| -
|
| -//Class generator method
|
| -CheckStrongMode("class C { *foo(a, b, undefined, c, d) {} }");
|
| -assertThrows("class C { *foo(a, b, undefined, c, d) {'use strong';} }",
|
| - SyntaxError);
|
| -
|
| -//Object literal method
|
| -CheckStrongMode("({ foo(a, b, undefined, c, d) {} });");
|
| -assertThrows("({ foo(a, b, undefined, c, d) {'use strong';} });", SyntaxError);
|
| -
|
| -//Object literal generator method
|
| -CheckStrongMode("({ *foo(a, b, undefined, c, d) {} });");
|
| -assertThrows("({ *foo(a, b, undefined, c, d) {'use strong';} });", SyntaxError);
|
| -
|
| -// Class declaration named 'undefined'
|
| -CheckStrongMode("class undefined {}");
|
| -assertThrows("class undefined {'use strong'}", SyntaxError);
|
| -
|
| -// Class expression named 'undefined'
|
| -CheckStrongMode("(class undefined {});");
|
| -assertThrows("(class undefined {'use strong'});", SyntaxError);
|
| -
|
| -// Binding/assigning to 'undefined' in for
|
| -CheckStrongMode("for(undefined = 0;false;);");
|
| -CheckStrongMode("for(var undefined = 0;false;);");
|
| -CheckStrongMode("for(let undefined = 0;false;);");
|
| -CheckStrongMode("for(const undefined = 0;false;);");
|
| -
|
| -// Binding/assigning to 'undefined' in for-in
|
| -CheckStrongMode("for(undefined in {});");
|
| -CheckStrongMode("for(var undefined in {});");
|
| -CheckStrongMode("for(let undefined in {});");
|
| -CheckStrongMode("for(const undefined in {});");
|
| -
|
| -// Binding/assigning to 'undefined' in for-of
|
| -CheckStrongMode("for(undefined of []);");
|
| -CheckStrongMode("for(var undefined of []);");
|
| -CheckStrongMode("for(let undefined of []);");
|
| -CheckStrongMode("for(const undefined of []);");
|
| -
|
| -// Property accessor parameter named 'undefined'.
|
| -CheckStrongMode("let o = { set foo(undefined) {} }");
|
| -assertThrows("let o = { set foo(undefined) {'use strong';} }", SyntaxError);
|
| -
|
| -// catch(undefined)
|
| -CheckStrongMode("try {} catch(undefined) {};");
|
| -
|
| -// Assignment to undefined
|
| -CheckStrongMode("undefined = 0;");
|
| -CheckStrongMode("print(undefined = 0);");
|
| -CheckStrongMode("let x = undefined = 0;");
|
| -
|
| -// Compound assignment to undefined
|
| -CheckStrongMode("undefined *= 0;");
|
| -CheckStrongMode("undefined /= 0;");
|
| -CheckStrongMode("print(undefined %= 0);");
|
| -CheckStrongMode("let x = undefined += 0;");
|
| -CheckStrongMode("let x = undefined -= 0;");
|
| -CheckStrongMode("undefined <<= 0;");
|
| -CheckStrongMode("undefined >>= 0;");
|
| -CheckStrongMode("print(undefined >>>= 0);");
|
| -CheckStrongMode("print(undefined &= 0);");
|
| -CheckStrongMode("let x = undefined ^= 0;");
|
| -CheckStrongMode("let x = undefined |= 0;");
|
| -
|
| -// Postfix increment with undefined
|
| -CheckStrongMode("undefined++;");
|
| -CheckStrongMode("print(undefined++);");
|
| -CheckStrongMode("let x = undefined++;");
|
| -
|
| -// Postfix decrement with undefined
|
| -CheckStrongMode("undefined--;");
|
| -CheckStrongMode("print(undefined--);");
|
| -CheckStrongMode("let x = undefined--;");
|
| -
|
| -// Prefix increment with undefined
|
| -CheckStrongMode("++undefined;");
|
| -CheckStrongMode("print(++undefined);");
|
| -CheckStrongMode("let x = ++undefined;");
|
| -
|
| -// Prefix decrement with undefined
|
| -CheckStrongMode("--undefined;");
|
| -CheckStrongMode("print(--undefined);");
|
| -CheckStrongMode("let x = --undefined;");
|
| -
|
| -// Function constructor: 'undefined' parameter name
|
| -assertDoesNotThrow(function() {
|
| - Function("undefined", "");
|
| -});
|
| -assertThrows(function() {
|
| - Function("undefined", "'use strong';");
|
| -}, SyntaxError);
|
| -
|
| -// Arrow functions with undefined parameters
|
| -CheckStrongMode("(undefined => {return});");
|
| -assertThrows("(undefined => {'use strong';});");
|
| -
|
| -CheckStrongMode("((undefined, b, c) => {return});");
|
| -assertThrows("((undefined, b, c) => {'use strong';});");
|
| -
|
| -CheckStrongMode("((a, undefined, c) => {return});");
|
| -assertThrows("((a, undefined, c) => {'use strong';});");
|
| -
|
| -CheckStrongMode("((a, b, undefined) => {return});");
|
| -assertThrows("((a, b, undefined) => {'use strong';});");
|
|
|