Index: src/messages.h |
diff --git a/src/messages.h b/src/messages.h |
index 4d8b459c5dcb6f32bcf9e8f6ec7155efe254dd6e..15a3d67b7a33b983cb7979edb3061cac4c4d5406 100644 |
--- a/src/messages.h |
+++ b/src/messages.h |
@@ -62,32 +62,6 @@ class MessageLocation { |
}; |
-// A message handler is a convenience interface for accessing the list |
-// of message listeners registered in an environment |
-class MessageHandler { |
- public: |
- // Returns a message object for the API to use. |
- static Handle<JSMessageObject> MakeMessageObject( |
- Isolate* isolate, |
- const char* type, |
- MessageLocation* loc, |
- Vector< Handle<Object> > args, |
- Handle<JSArray> stack_frames); |
- |
- // Report a formatted message (needs JS allocation). |
- static void ReportMessage(Isolate* isolate, |
- MessageLocation* loc, |
- Handle<Object> message); |
- |
- static void DefaultMessageReport(Isolate* isolate, |
- const MessageLocation* loc, |
- Handle<Object> message_obj); |
- static Handle<String> GetMessage(Isolate* isolate, Handle<Object> data); |
- static SmartArrayPointer<char> GetLocalizedMessage(Isolate* isolate, |
- Handle<Object> data); |
-}; |
- |
- |
class CallSite { |
public: |
CallSite(Handle<Object> receiver, Handle<JSFunction> fun, int pos) |
@@ -115,8 +89,11 @@ class CallSite { |
#define MESSAGE_TEMPLATES(T) \ |
/* Error */ \ |
+ T(None, "") \ |
T(CyclicProto, "Cyclic __proto__ value") \ |
+ T(DebuggerLoading, "Error loading debugger") \ |
T(DefaultOptionsMissing, "Internal % error. Default options are missing.") \ |
+ T(UncaughtException, "Uncaught %") \ |
T(Unsupported, "Not supported") \ |
T(WrongServiceType, "Internal error, wrong service type: %") \ |
T(WrongValueType, "Internal error. Wrong value type.") \ |
@@ -264,6 +241,11 @@ class CallSite { |
/* ReferenceError */ \ |
T(NonMethod, "'super' is referenced from non-method") \ |
T(NotDefined, "% is not defined") \ |
+ T(StrongSuperCallMissing, \ |
+ "In strong mode, invoking the super constructor in a subclass is " \ |
+ "required") \ |
+ T(StrongUnboundGlobal, \ |
+ "In strong mode, using an undeclared global variable '%' is not allowed") \ |
T(UnsupportedSuper, "Unsupported reference to 'super'") \ |
/* RangeError */ \ |
T(ArrayLengthOutOfRange, "defineProperty() array length out of range") \ |
@@ -298,13 +280,124 @@ class CallSite { |
T(UnsupportedTimeZone, "Unsupported time zone specified %") \ |
T(ValueOutOfRange, "Value % out of range for % options property %") \ |
/* SyntaxError */ \ |
+ T(BadGetterArity, "Getter must not have any formal parameters.") \ |
+ T(BadSetterArity, "Setter must have exactly one formal parameter.") \ |
+ T(ConstructorIsAccessor, "Class constructor may not be an accessor") \ |
+ T(ConstructorIsGenerator, "Class constructor may not be a generator") \ |
+ T(DerivedConstructorReturn, \ |
+ "Derived constructors may only return object or undefined") \ |
+ T(DuplicateArrawFunFormalParam, \ |
+ "Arrow function may not have duplicate parameter names") \ |
+ T(DuplicateConstructor, "A class may only have one constructor") \ |
+ T(DuplicateExport, "Duplicate export of '%'") \ |
+ T(DuplicateProto, \ |
+ "Duplicate __proto__ fields are not allowed in object literals") \ |
+ T(ForInLoopInitializer, \ |
+ "for-in loop variable declaration may not have an initializer.") \ |
+ T(ForInOfLoopMultiBindings, \ |
+ "Invalid left-hand side in % loop: Must have a single binding.") \ |
+ T(ForOfLoopInitializer, \ |
+ "for-of loop variable declaration may not have an initializer.") \ |
+ T(IllegalAccess, "Illegal access") \ |
+ T(IllegalBreak, "Illegal break statement") \ |
+ T(IllegalContinue, "Illegal continue statement") \ |
+ T(IllegalReturn, "Illegal return statement") \ |
+ T(InvalidLhsInAssignment, "Invalid left-hand side in assignment") \ |
+ T(InvalidLhsInFor, "Invalid left-hand side in for-loop") \ |
+ T(InvalidLhsInPostfixOp, \ |
+ "Invalid left-hand side expression in postfix operation") \ |
+ T(InvalidLhsInPrefixOp, \ |
+ "Invalid left-hand side expression in prefix operation") \ |
T(InvalidRegExpFlags, "Invalid flags supplied to RegExp constructor '%'") \ |
+ T(LabelRedeclaration, "Label '%' has already been declared") \ |
+ T(MalformedArrowFunParamList, "Malformed arrow function parameter list") \ |
T(MalformedRegExp, "Invalid regular expression: /%/: %") \ |
+ T(MalformedRegExpFlags, "Invalid regular expression flags") \ |
+ T(ModuleExportUndefined, "Export '%' is not defined in module") \ |
+ T(MultipleDefaultsInSwitch, \ |
+ "More than one default clause in switch statement") \ |
+ T(NewlineAfterThrow, "Illegal newline after throw") \ |
+ T(NoCatchOrFinally, "Missing catch or finally after try") \ |
+ T(NotIsvar, "builtin %%IS_VAR: not a variable") \ |
+ T(ParamAfterRest, "Rest parameter must be last formal parameter") \ |
T(ParenthesisInArgString, "Function arg string contains parenthesis") \ |
+ T(SingleFunctionLiteral, "Single function literal required") \ |
+ T(SloppyLexical, \ |
+ "Block-scoped declarations (let, const, function, class) not yet " \ |
+ "supported outside strict mode") \ |
+ T(StrictDelete, "Delete of an unqualified identifier in strict mode.") \ |
+ T(StrictEvalArguments, "Unexpected eval or arguments in strict mode") \ |
+ T(StrictFunction, \ |
+ "In strict mode code, functions can only be declared at top level or " \ |
+ "immediately within another function.") \ |
+ T(StrictOctalLiteral, "Octal literals are not allowed in strict mode.") \ |
+ T(StrictParamDupe, \ |
+ "Strict mode function may not have duplicate parameter names") \ |
+ T(StrictWith, "Strict mode code may not include a with statement") \ |
+ T(StrongArguments, \ |
+ "In strong mode, 'arguments' is deprecated, use '...args' instead") \ |
+ T(StrongConstructorReturnMisplaced, \ |
+ "In strong mode, returning from a constructor before its super " \ |
+ "constructor invocation or all assignments to 'this' is deprecated") \ |
+ T(StrongConstructorReturnValue, \ |
+ "In strong mode, returning a value from a constructor is deprecated") \ |
+ T(StrongConstructorSuper, \ |
+ "In strong mode, 'super' can only be used to invoke the super " \ |
+ "constructor, and cannot be nested inside another statement or " \ |
+ "expression") \ |
+ T(StrongConstructorThis, \ |
+ "In strong mode, 'this' can only be used to initialize properties, and " \ |
+ "cannot be nested inside another statement or expression") \ |
+ T(StrongDelete, \ |
+ "In strong mode, 'delete' is deprecated, use maps or sets instead") \ |
+ T(StrongDirectEval, "In strong mode, direct calls to eval are deprecated") \ |
+ T(StrongEllision, \ |
+ "In strong mode, arrays with holes are deprecated, use maps instead") \ |
+ T(StrongEmpty, \ |
+ "In strong mode, empty sub-statements are deprecated, make them explicit " \ |
+ "with '{}' instead") \ |
+ T(StrongEqual, \ |
+ "In strong mode, '==' and '!=' are deprecated, use '===' and '!==' " \ |
+ "instead") \ |
+ T(StrongForIn, \ |
+ "In strong mode, 'for'-'in' loops are deprecated, use 'for'-'of' instead") \ |
+ T(StrongSuperCallDuplicate, \ |
+ "In strong mode, invoking the super constructor multiple times is " \ |
+ "deprecated") \ |
+ T(StrongSuperCallMisplaced, \ |
+ "In strong mode, the super constructor must be invoked before any " \ |
+ "assignment to 'this'") \ |
+ T(StrongSwitchFallthrough, \ |
+ "In strong mode, switch fall-through is deprecated, terminate each case " \ |
+ "with 'break', 'continue', 'return' or 'throw'") \ |
+ T(StrongUndefined, \ |
+ "In strong mode, binding or assigning to 'undefined' is deprecated") \ |
+ T(StrongUseBeforeDeclaration, \ |
+ "In strong mode, declaring variable '%' before its use is required") \ |
+ T(StrongVar, \ |
+ "In strong mode, 'var' is deprecated, use 'let' or 'const' instead") \ |
+ T(TemplateOctalLiteral, \ |
+ "Octal literals are not allowed in template strings.") \ |
+ T(ThisFormalParameter, "'this' is not a valid formal parameter name") \ |
+ T(TooManyArguments, \ |
+ "Too many arguments in function call (only 65535 allowed)") \ |
+ T(TooManyParameters, \ |
+ "Too many parameters in function definition (only 65535 allowed)") \ |
+ T(TooManyVariables, "Too many variables declared (only 4194303 allowed)") \ |
T(UnexpectedEOS, "Unexpected end of input") \ |
+ T(UnexpectedReserved, "Unexpected reserved word") \ |
+ T(UnexpectedStrictReserved, "Unexpected strict mode reserved word") \ |
+ T(UnexpectedSuper, "'super' keyword unexpected here") \ |
+ T(UnexpectedTemplateString, "Unexpected template string") \ |
T(UnexpectedToken, "Unexpected token %") \ |
+ T(UnexpectedTokenIdentifier, "Unexpected identifier") \ |
T(UnexpectedTokenNumber, "Unexpected number") \ |
T(UnexpectedTokenString, "Unexpected string") \ |
+ T(UnknownLabel, "Undefined label '%'") \ |
+ T(UnterminatedArgList, "missing ) after argument list") \ |
+ T(UnterminatedRegExp, "Invalid regular expression: missing /") \ |
+ T(UnterminatedTemplate, "Unterminated template literal") \ |
+ T(UnterminatedTemplateExpr, "Missing } in template expression") \ |
/* EvalError */ \ |
T(CodeGenFromStrings, "%") \ |
/* URIError */ \ |
@@ -323,6 +416,30 @@ class MessageTemplate { |
Handle<String> arg0, |
Handle<String> arg1, |
Handle<String> arg2); |
+ |
+ static Handle<String> FormatMessage(Isolate* isolate, int template_index, |
+ Handle<Object> arg); |
+}; |
+ |
+ |
+// A message handler is a convenience interface for accessing the list |
+// of message listeners registered in an environment |
+class MessageHandler { |
+ public: |
+ // Returns a message object for the API to use. |
+ static Handle<JSMessageObject> MakeMessageObject( |
+ Isolate* isolate, MessageTemplate::Template type, MessageLocation* loc, |
+ Handle<Object> argument, Handle<JSArray> stack_frames); |
+ |
+ // Report a formatted message (needs JS allocation). |
+ static void ReportMessage(Isolate* isolate, MessageLocation* loc, |
+ Handle<Object> message); |
+ |
+ static void DefaultMessageReport(Isolate* isolate, const MessageLocation* loc, |
+ Handle<Object> message_obj); |
+ static Handle<String> GetMessage(Isolate* isolate, Handle<Object> data); |
+ static SmartArrayPointer<char> GetLocalizedMessage(Isolate* isolate, |
+ Handle<Object> data); |
}; |
} } // namespace v8::internal |