You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

137 lines
8.1 KiB

/*
* Shared string macros.
*
* Using shared macros helps minimize strings data size because it's easy
* to check if an existing string could be used. String constants don't
* need to be all defined here; defining a string here makes sense if there's
* a high chance the string could be reused. Also, using macros allows
* a call site express the exact string needed, but the macro may map to an
* approximate string to reduce unique string count. Macros can also be
* more easily tuned for low memory targets than #ifdefs throughout the
* code base.
*
* Because format strings behave differently in the call site (they need to
* be followed by format arguments), they use a special prefix DUK_STR_FMT_.
*
* On some compilers using explicit shared strings is preferable; on others
* it may be better to use straight literals because the compiler will combine
* them anyway, and such strings won't end up unnecessarily in a symbol table.
*/
#ifndef DUK_ERRMSG_H_INCLUDED
#define DUK_ERRMSG_H_INCLUDED
/* Mostly API and built-in method related */
#define DUK_STR_INTERNAL_ERROR "internal error"
#define DUK_STR_UNSUPPORTED "unsupported"
#define DUK_STR_INVALID_COUNT "invalid count"
#define DUK_STR_INVALID_CALL_ARGS "invalid call args"
#define DUK_STR_INVALID_INPUT "invalid input"
#define DUK_STR_NOT_CONSTRUCTABLE "not constructable"
#define DUK_STR_NOT_CALLABLE "not callable"
#define DUK_STR_NOT_EXTENSIBLE "not extensible"
#define DUK_STR_NOT_WRITABLE "not writable"
#define DUK_STR_NOT_CONFIGURABLE "not configurable"
#define DUK_STR_INVALID_CONTEXT "invalid context"
#define DUK_STR_INVALID_INDEX "invalid call args"
#define DUK_STR_PUSH_BEYOND_ALLOC_STACK "cannot push beyond allocated stack"
#define DUK_STR_NOT_UNDEFINED "unexpected type"
#define DUK_STR_NOT_NULL "unexpected type"
#define DUK_STR_NOT_BOOLEAN "unexpected type"
#define DUK_STR_NOT_NUMBER "unexpected type"
#define DUK_STR_NOT_STRING "unexpected type"
#define DUK_STR_NOT_OBJECT "unexpected type"
#define DUK_STR_NOT_POINTER "unexpected type"
#define DUK_STR_NOT_BUFFER "not buffer" /* still in use with verbose messages */
#define DUK_STR_UNEXPECTED_TYPE "unexpected type"
#define DUK_STR_NOT_THREAD "unexpected type"
#define DUK_STR_NOT_COMPFUNC "unexpected type"
#define DUK_STR_NOT_NATFUNC "unexpected type"
#define DUK_STR_NOT_C_FUNCTION "unexpected type"
#define DUK_STR_NOT_FUNCTION "unexpected type"
#define DUK_STR_NOT_REGEXP "unexpected type"
#define DUK_STR_TOPRIMITIVE_FAILED "coercion to primitive failed"
#define DUK_STR_NUMBER_OUTSIDE_RANGE "number outside range"
#define DUK_STR_NOT_OBJECT_COERCIBLE "not object coercible"
#define DUK_STR_STRING_TOO_LONG "string too long"
#define DUK_STR_BUFFER_TOO_LONG "buffer too long"
#define DUK_STR_ALLOC_FAILED "alloc failed"
#define DUK_STR_WRONG_BUFFER_TYPE "wrong buffer type"
#define DUK_STR_ENCODE_FAILED "encode failed"
#define DUK_STR_DECODE_FAILED "decode failed"
#define DUK_STR_NO_SOURCECODE "no sourcecode"
#define DUK_STR_RESULT_TOO_LONG "result too long"
#define DUK_STR_ARRAY_LENGTH_OVER_2G "array length over 2G"
/* JSON */
#define DUK_STR_FMT_PTR "%p"
#define DUK_STR_FMT_INVALID_JSON "invalid json (at offset %ld)"
#define DUK_STR_JSONDEC_RECLIMIT "json decode recursion limit"
#define DUK_STR_JSONENC_RECLIMIT "json encode recursion limit"
#define DUK_STR_CYCLIC_INPUT "cyclic input"
/* Object property access */
#define DUK_STR_PROXY_REVOKED "proxy revoked"
#define DUK_STR_INVALID_BASE "invalid base value"
#define DUK_STR_STRICT_CALLER_READ "cannot read strict 'caller'"
#define DUK_STR_PROXY_REJECTED "proxy rejected"
#define DUK_STR_INVALID_ARRAY_LENGTH "invalid array length"
#define DUK_STR_SETTER_UNDEFINED "setter undefined"
#define DUK_STR_INVALID_DESCRIPTOR "invalid descriptor"
/* Variables */
/* Compiler */
#define DUK_STR_PARSE_ERROR "parse error"
#define DUK_STR_DUPLICATE_LABEL "duplicate label"
#define DUK_STR_INVALID_LABEL "invalid label"
#define DUK_STR_INVALID_ARRAY_LITERAL "invalid array literal"
#define DUK_STR_INVALID_OBJECT_LITERAL "invalid object literal"
#define DUK_STR_INVALID_VAR_DECLARATION "invalid variable declaration"
#define DUK_STR_CANNOT_DELETE_IDENTIFIER "cannot delete identifier"
#define DUK_STR_INVALID_EXPRESSION "invalid expression"
#define DUK_STR_INVALID_LVALUE "invalid lvalue"
#define DUK_STR_EXPECTED_IDENTIFIER "expected identifier"
#define DUK_STR_EMPTY_EXPR_NOT_ALLOWED "empty expression not allowed"
#define DUK_STR_INVALID_FOR "invalid for statement"
#define DUK_STR_INVALID_SWITCH "invalid switch statement"
#define DUK_STR_INVALID_BREAK_CONT_LABEL "invalid break/continue label"
#define DUK_STR_INVALID_RETURN "invalid return"
#define DUK_STR_INVALID_TRY "invalid try"
#define DUK_STR_INVALID_THROW "invalid throw"
#define DUK_STR_WITH_IN_STRICT_MODE "with in strict mode"
#define DUK_STR_FUNC_STMT_NOT_ALLOWED "function statement not allowed"
#define DUK_STR_UNTERMINATED_STMT "unterminated statement"
#define DUK_STR_INVALID_ARG_NAME "invalid argument name"
#define DUK_STR_INVALID_FUNC_NAME "invalid function name"
#define DUK_STR_INVALID_GETSET_NAME "invalid getter/setter name"
#define DUK_STR_FUNC_NAME_REQUIRED "function name required"
/* Regexp */
#define DUK_STR_INVALID_QUANTIFIER_NO_ATOM "quantifier without preceding atom"
#define DUK_STR_INVALID_QUANTIFIER_VALUES "quantifier values invalid (qmin > qmax)"
#define DUK_STR_QUANTIFIER_TOO_MANY_COPIES "quantifier requires too many atom copies"
#define DUK_STR_UNEXPECTED_CLOSING_PAREN "unexpected closing parenthesis"
#define DUK_STR_UNEXPECTED_END_OF_PATTERN "unexpected end of pattern"
#define DUK_STR_UNEXPECTED_REGEXP_TOKEN "unexpected token in regexp"
#define DUK_STR_INVALID_REGEXP_FLAGS "invalid regexp flags"
#define DUK_STR_INVALID_BACKREFS "invalid backreference(s)"
/* Limits */
#define DUK_STR_VALSTACK_LIMIT "valstack limit"
#define DUK_STR_CALLSTACK_LIMIT "callstack limit"
#define DUK_STR_CATCHSTACK_LIMIT "catchstack limit"
#define DUK_STR_PROTOTYPE_CHAIN_LIMIT "prototype chain limit"
#define DUK_STR_BOUND_CHAIN_LIMIT "function call bound chain limit"
#define DUK_STR_C_CALLSTACK_LIMIT "C call stack depth limit"
#define DUK_STR_COMPILER_RECURSION_LIMIT "compiler recursion limit"
#define DUK_STR_BYTECODE_LIMIT "bytecode limit"
#define DUK_STR_REG_LIMIT "register limit"
#define DUK_STR_TEMP_LIMIT "temp limit"
#define DUK_STR_CONST_LIMIT "const limit"
#define DUK_STR_FUNC_LIMIT "function limit"
#define DUK_STR_REGEXP_COMPILER_RECURSION_LIMIT "regexp compiler recursion limit"
#define DUK_STR_REGEXP_EXECUTOR_RECURSION_LIMIT "regexp executor recursion limit"
#define DUK_STR_REGEXP_EXECUTOR_STEP_LIMIT "regexp step limit"
#endif /* DUK_ERRMSG_H_INCLUDED */