diff options
Diffstat (limited to 'src/3rdparty/v8/test/preparser/strict-identifiers.pyt')
-rw-r--r-- | src/3rdparty/v8/test/preparser/strict-identifiers.pyt | 288 |
1 files changed, 0 insertions, 288 deletions
diff --git a/src/3rdparty/v8/test/preparser/strict-identifiers.pyt b/src/3rdparty/v8/test/preparser/strict-identifiers.pyt deleted file mode 100644 index f979088..0000000 --- a/src/3rdparty/v8/test/preparser/strict-identifiers.pyt +++ /dev/null @@ -1,288 +0,0 @@ -# Copyright 2011 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Templatated tests with eval/arguments/future reserved words. - -# ---------------------------------------------------------------------- -# Constants and utility functions - -reserved_words = [ - 'class', - 'const', # Has other error message than other reserved words. - 'enum', - 'export', - 'extends', - 'import', - 'super' - ] - -strict_reserved_words = [ - 'implements', - 'interface', - 'let', - 'package', - 'private', - 'protected', - 'public', - 'static', - 'yield' - ] - -assign_ops = { - "=": "assign", - "+=": "addeq", - "-=": "subeq", - "*=": "muleq", - "/=": "diveq", - "%=": "modeq", - "&=": "andeq", - "|=": "oreq", - "^=": "xoreq", - "<<=": "shleq", - ">>=": "asreq", - ">>>=": "lsreq" - } - - -# A template that performs the same strict-mode test in different -# scopes (global scope, function scope, and nested function scope). -def StrictTemplate(name, source): - def MakeTests(replacement, expectation): - Template(name, '"use strict";\n' + source)(replacement, expectation) - Template(name + '-infunc', - 'function foo() {\n "use strict";\n' + source +'\n}\n')( - replacement, expectation) - Template(name + '-infunc2', - 'function foo() {\n "use strict";\n function bar() {\n' + - source +'\n }\n}\n')(replacement, expectation) - return MakeTests - -# ---------------------------------------------------------------------- -# Test templates - -arg_name_own = Template("argument-name-own-$id", """ - function foo($id) { - "use strict"; - } -""") - -arg_name_nested = Template("argument-name-nested-$id", """ - function foo() { - "use strict"; - function bar($id) { } - } -""") - -func_name_own = Template("function-name-own-$id", """ - function $id(foo) { - "use strict"; - } -""") - -func_name_nested = Template("function-name-nested-$id", """ - function foo() { - "use strict"; - function $id(bar) { } - } -""") - -catch_var = StrictTemplate("catch-$id", """ - try { } catch ($id) { } -""") - -declare_var = StrictTemplate("var-$id", """ - var $id = 42; -""") - -assign_var = StrictTemplate("assign-$id-$opname", """ - var x = $id $op 42; -""") - -prefix_var = StrictTemplate("prefix-$opname-$id", """ - var x = $op$id; -""") - -postfix_var = StrictTemplate("postfix-$opname-$id", """ - var x = $id$op; -""") - -read_var = StrictTemplate("read-reserved-$id", """ - var x = $id; -""") - -setter_arg = StrictTemplate("setter-param-$id", """ - var x = {set foo($id) { }}; -""") - -label_normal = Template("label-normal-$id", """ - $id: ''; -""") - -label_strict = StrictTemplate("label-strict-$id", """ - $id: ''; -""") - -break_normal = Template("break-normal-$id", """ - for (;;) { - break $id; - } -""") - -break_strict = StrictTemplate("break-strict-$id", """ - for (;;) { - break $id; - } -""") - -continue_normal = Template("continue-normal-$id", """ - for (;;) { - continue $id; - } -""") - -continue_strict = StrictTemplate("continue-strict-$id", """ - for (;;) { - continue $id; - } -""") - -non_strict_use = Template("nonstrict-$id", """ - var $id = 42; - $id++; - $id--; - ++$id; - --$id; - $id += 10; - $id -= 10; - try {} catch ($id) { } - function $id($id) { } - var x = {$id: 42}; - x = {get $id() {}, set $id(value) {}}; - function foo() { "use strict;" } - var $id = 42; - $id++; - $id--; - ++$id; - --$id; - $id += 10; - $id -= 10; - try {} catch ($id) { } - function $id($id) { } - x = {$id: 42}; - x = {get $id() {}, set $id(value) {}}; - $id: ''; -""") - -identifier_name_source = """ - var x = {$id: 42}; - x = {get $id() {}, set $id(value) {}}; - x.$id = 42; - function foo() { "use strict;" } - x = {$id: 42}; - x = {get $id() {}, set $id(value) {}}; - x.$id = 42; -""" - -identifier_name = Template("identifier_name-$id", identifier_name_source) -identifier_name_strict = StrictTemplate("identifier_name_strict-$id", - identifier_name_source) - -# ---------------------------------------------------------------------- -# Run tests - -# eval and arguments have specific exceptions for different uses. -for id in ["eval", "arguments"]: - arg_name_own({"id": id}, "strict_param_name") - arg_name_nested({"id": id}, "strict_param_name") - func_name_own({"id": id}, "strict_function_name") - func_name_nested({"id": id}, "strict_function_name") - setter_arg({"id": id}, "strict_param_name") - for op in assign_ops.keys(): - assign_var({"id": id, "op":op, "opname": assign_ops[op]}, - "strict_lhs_assignment") - catch_var({"id": id}, "strict_catch_variable") - declare_var({"id": id}, "strict_var_name") - prefix_var({"id": id, "op":"++", "opname":"inc"}, "strict_lhs_prefix") - prefix_var({"id": id, "op":"--", "opname":"dec"}, "strict_lhs_prefix") - postfix_var({"id": id, "op":"++", "opname":"inc"}, "strict_lhs_postfix") - postfix_var({"id": id, "op":"--", "opname":"dec"}, "strict_lhs_postfix") - label_normal({"id": id}, None) - label_strict({"id": id}, None) - break_normal({"id": id}, None) - break_strict({"id": id}, None) - continue_normal({"id": id}, None) - continue_strict({"id": id}, None) - non_strict_use({"id": id}, None) - - -# Reserved words just throw the same exception in all cases -# (with "const" being special, as usual). -for reserved_word in reserved_words + strict_reserved_words: - if (reserved_word in strict_reserved_words): - message = "strict_reserved_word" - label_message = None - elif (reserved_word == "const"): - message = "unexpected_token" - label_message = message - else: - message = "reserved_word" - label_message = message - arg_name_own({"id":reserved_word}, message) - arg_name_nested({"id":reserved_word}, message) - setter_arg({"id": reserved_word}, message) - func_name_own({"id":reserved_word}, message) - func_name_nested({"id":reserved_word}, message) - for op in assign_ops.keys(): - assign_var({"id":reserved_word, "op":op, "opname": assign_ops[op]}, message) - catch_var({"id":reserved_word}, message) - declare_var({"id":reserved_word}, message) - prefix_var({"id":reserved_word, "op":"++", "opname":"inc"}, message) - prefix_var({"id":reserved_word, "op":"--", "opname":"dec"}, message) - postfix_var({"id":reserved_word, "op":"++", "opname":"inc"}, message) - postfix_var({"id":reserved_word, "op":"--", "opname":"dec"}, message) - read_var({"id": reserved_word}, message) - identifier_name({"id": reserved_word}, None); - identifier_name_strict({"id": reserved_word}, None); - label_normal({"id": reserved_word}, label_message) - break_normal({"id": reserved_word}, label_message) - continue_normal({"id": reserved_word}, label_message) - if (reserved_word == "const"): - # The error message for this case is different because - # ParseLabelledStatementOrExpression will try to parse this as an expression - # first, effectively disallowing the use in ParseVariableDeclarations, i.e. - # the preparser never sees that 'const' was intended to be a label. - label_strict({"id": reserved_word}, "strict_const") - else: - label_strict({"id": reserved_word}, message) - break_strict({"id": reserved_word}, message) - continue_strict({"id": reserved_word}, message) - - -# Future reserved words in strict mode behave like normal identifiers -# in a non strict context. -for reserved_word in strict_reserved_words: - non_strict_use({"id": reserved_word}, None) |