/** * Copyright 2014 Shape Security, Inc. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ module.exports = { ErrorMessages: { UNEXPECTED_TOKEN(id) { return `Unexpected token ${JSON.stringify(id)}`; }, UNEXPECTED_ILLEGAL_TOKEN(id) { return `Unexpected ${JSON.stringify(id)}`; }, UNEXPECTED_ESCAPED_KEYWORD: 'Unexpected escaped keyword', UNEXPECTED_NUMBER: 'Unexpected number', UNEXPECTED_STRING: 'Unexpected string', UNEXPECTED_IDENTIFIER: 'Unexpected identifier', UNEXPECTED_RESERVED_WORD: 'Unexpected reserved word', UNEXPECTED_TEMPLATE: 'Unexpected template', UNEXPECTED_EOS: 'Unexpected end of input', UNEXPECTED_LINE_TERMINATOR: 'Unexpected line terminator', UNEXPECTED_COMMA_AFTER_REST: 'Unexpected comma after rest', UNEXPECTED_REST_PARAMETERS_INITIALIZATION: 'Rest parameter may not have a default initializer', NEWLINE_AFTER_THROW: 'Illegal newline after throw', UNTERMINATED_REGEXP: 'Invalid regular expression: missing /', INVALID_LAST_REST_PARAMETER: 'Rest parameter must be last formal parameter', INVALID_REST_PARAMETERS_INITIALIZATION: 'Rest parameter may not have a default initializer', INVALID_REGEXP_FLAGS: 'Invalid regular expression flags', INVALID_REGEX: 'Invalid regular expression', INVALID_LHS_IN_ASSIGNMENT: 'Invalid left-hand side in assignment', INVALID_LHS_IN_BINDING: 'Invalid left-hand side in binding', // todo collapse messages? INVALID_LHS_IN_FOR_IN: 'Invalid left-hand side in for-in', INVALID_LHS_IN_FOR_OF: 'Invalid left-hand side in for-of', INVALID_LHS_IN_FOR_AWAIT: 'Invalid left-hand side in for-await', INVALID_UPDATE_OPERAND: 'Increment/decrement target must be an identifier or member expression', INVALID_EXPONENTIATION_LHS: 'Unary expressions as the left operand of an exponentation expression ' + 'must be disambiguated with parentheses', MULTIPLE_DEFAULTS_IN_SWITCH: 'More than one default clause in switch statement', NO_CATCH_OR_FINALLY: 'Missing catch or finally after try', ILLEGAL_RETURN: 'Illegal return statement', ILLEGAL_ARROW_FUNCTION_PARAMS: 'Illegal arrow function parameter list', INVALID_ASYNC_PARAMS: 'Async function parameters must not contain await expressions', INVALID_VAR_INIT_FOR_IN: 'Invalid variable declaration in for-in statement', INVALID_VAR_INIT_FOR_OF: 'Invalid variable declaration in for-of statement', INVALID_VAR_INIT_FOR_AWAIT: 'Invalid variable declaration in for-await statement', UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT: 'Binding pattern appears without initializer in for statement init', ILLEGAL_PROPERTY: 'Illegal property initializer', INVALID_ID_BINDING_STRICT_MODE(id) { return `The identifier ${JSON.stringify(id)} must not be in binding position in strict mode`; }, INVALID_ID_IN_LABEL_STRICT_MODE(id) { return `The identifier ${JSON.stringify(id)} must not be in label position in strict mode`; }, INVALID_ID_IN_EXPRESSION_STRICT_MODE(id) { return `The identifier ${JSON.stringify(id)} must not be in expression position in strict mode`; }, INVALID_CALL_TO_SUPER: 'Calls to super must be in the "constructor" method of a class expression ' + 'or class declaration that has a superclass', INVALID_DELETE_STRICT_MODE: 'Identifier expressions must not be deleted in strict mode', DUPLICATE_BINDING(id) { return `Duplicate binding ${JSON.stringify(id)}`; }, ILLEGAL_ID_IN_LEXICAL_DECLARATION(id) { return `Lexical declarations must not have a binding named ${JSON.stringify(id)}`; }, UNITIALIZED_CONST: 'Constant lexical declarations must have an initialiser', ILLEGAL_LABEL_IN_BODY(stmt) { return `The body of a ${stmt} statement must not be a labeled function declaration`; }, ILLEGEAL_LABEL_IN_IF: 'The consequent of an if statement must not be a labeled function declaration', ILLEGAL_LABEL_IN_ELSE: 'The alternate of an if statement must not be a labeled function declaration', ILLEGAL_CONTINUE_WITHOUT_ITERATION_WITH_ID(id) { return `Continue statement must be nested within an iteration statement with label ${JSON.stringify(id)}`; }, ILLEGAL_CONTINUE_WITHOUT_ITERATION: 'Continue statement must be nested within an iteration statement', ILLEGAL_BREAK_WITHOUT_ITERATION_OR_SWITCH: 'Break statement must be nested within an iteration statement or a switch statement', ILLEGAL_WITH_STRICT_MODE: 'Strict mode code must not include a with statement', ILLEGAL_ACCESS_SUPER_MEMBER: 'Member access on super must be in a method', ILLEGAL_SUPER_CALL: 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', DUPLICATE_LABEL_DECLARATION(label) { return `Label ${JSON.stringify(label)} has already been declared`; }, ILLEGAL_BREAK_WITHIN_LABEL(label) { return `Break statement must be nested within a statement with label ${JSON.stringify(label)}`; }, ILLEGAL_YIELD_EXPRESSIONS(paramType) { return `${paramType} parameters must not contain yield expressions`; }, ILLEGAL_YIELD_IDENTIFIER: '"yield" may not be used as an identifier in this context', ILLEGAL_AWAIT_IDENTIFIER: '"await" may not be used as an identifier in this context', DUPLICATE_CONSTRUCTOR: 'Duplicate constructor method in class', ILLEGAL_CONSTRUCTORS: 'Constructors cannot be async, generators, getters or setters', ILLEGAL_STATIC_CLASS_NAME: 'Static class methods cannot be named "prototype"', NEW_TARGET_ERROR: 'new.target must be within function (but not arrow expression) code', DUPLICATE_EXPORT(id) { return `Duplicate export ${JSON.stringify(id)}`; }, UNDECLARED_BINDING(id) { return `Exported binding ${JSON.stringify(id)} is not declared`; }, DUPLICATE_PROPTO_PROP: 'Duplicate __proto__ property in object literal not allowed', ILLEGAL_LABEL_FUNC_DECLARATION: 'Labeled FunctionDeclarations are disallowed in strict mode', ILLEGAL_FUNC_DECL_IF: 'FunctionDeclarations in IfStatements are disallowed in strict mode', ILLEGAL_USE_STRICT: 'Functions with non-simple parameter lists may not contain a "use strict" directive', ILLEGAL_EXPORTED_NAME: 'Names of variables used in an export specifier from the current module must be identifiers', NO_OCTALS_IN_TEMPLATES: 'Template literals may not contain octal escape sequences', NO_AWAIT_IN_ASYNC_PARAMS: 'Async arrow parameters may not contain "await"', }, };