cosmopolitan/third_party/duktape/duk_strings.h

168 lines
9.9 KiB
C

/*
* 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 #if defined()s 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.
*/
#if !defined(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_ARGS "invalid args"
#define DUK_STR_INVALID_STATE "invalid state"
#define DUK_STR_INVALID_INPUT "invalid input"
#define DUK_STR_INVALID_LENGTH "invalid length"
#define DUK_STR_NOT_CONSTRUCTABLE "not constructable"
#define DUK_STR_CONSTRUCT_ONLY "constructor requires 'new'"
#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 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_CANNOT_NUMBER_COERCE_SYMBOL "cannot number coerce Symbol"
#define DUK_STR_CANNOT_STRING_COERCE_SYMBOL "cannot string coerce Symbol"
#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_BASE64_ENCODE_FAILED "base64 encode failed"
#define DUK_STR_SOURCE_DECODE_FAILED "source decode failed"
#define DUK_STR_UTF8_DECODE_FAILED "utf-8 decode failed"
#define DUK_STR_BASE64_DECODE_FAILED "base64 decode failed"
#define DUK_STR_HEX_DECODE_FAILED "hex decode failed"
#define DUK_STR_INVALID_BYTECODE "invalid bytecode"
#define DUK_STR_NO_SOURCECODE "no sourcecode"
#define DUK_STR_RESULT_TOO_LONG "result too long"
#define DUK_STR_INVALID_CFUNC_RC "invalid C function rc"
#define DUK_STR_INVALID_INSTANCEOF_RVAL "invalid instanceof rval"
#define DUK_STR_INVALID_INSTANCEOF_RVAL_NOPROTO "instanceof rval has no .prototype"
/* 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_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"
/* Proxy */
#define DUK_STR_PROXY_REVOKED "proxy revoked"
#define DUK_STR_INVALID_TRAP_RESULT "invalid trap result"
/* Variables */
/* Lexer */
#define DUK_STR_INVALID_ESCAPE "invalid escape"
#define DUK_STR_UNTERMINATED_STRING "unterminated string"
#define DUK_STR_UNTERMINATED_COMMENT "unterminated comment"
#define DUK_STR_UNTERMINATED_REGEXP "unterminated regexp"
#define DUK_STR_TOKEN_LIMIT "token limit"
#define DUK_STR_REGEXP_SUPPORT_DISABLED "regexp support disabled"
#define DUK_STR_INVALID_NUMBER_LITERAL "invalid number literal"
#define DUK_STR_INVALID_TOKEN "invalid token"
/* 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_INVALID_NEWTARGET "invalid new.target"
#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 "invalid regexp quantifier"
#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_REGEXP_ESCAPE "invalid regexp escape"
#define DUK_STR_INVALID_BACKREFS "invalid backreference(s)"
#define DUK_STR_INVALID_REGEXP_CHARACTER "invalid regexp character"
#define DUK_STR_INVALID_REGEXP_GROUP "invalid regexp group"
#define DUK_STR_UNTERMINATED_CHARCLASS "unterminated character class"
#define DUK_STR_INVALID_RANGE "invalid range"
/* Limits */
#define DUK_STR_VALSTACK_LIMIT "valstack limit"
#define DUK_STR_CALLSTACK_LIMIT "callstack limit"
#define DUK_STR_PROTOTYPE_CHAIN_LIMIT "prototype chain limit"
#define DUK_STR_BOUND_CHAIN_LIMIT "function call bound chain limit"
#define DUK_STR_NATIVE_STACK_LIMIT "C 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 */