| /* |
| * Shared error messages: declarations and macros |
| * |
| * Error messages are accessed through macros with fine-grained, explicit |
| * error message distinctions. Concrete error messages are selected by the |
| * macros and multiple macros can map to the same concrete string to save |
| * on code footprint. This allows flexible footprint/verbosity tuning with |
| * minimal code impact. There are a few limitations to this approach: |
| * (1) switching between plain messages and format strings doesn't work |
| * conveniently, and (2) conditional strings are a bit awkward to handle. |
| * |
| * Because format strings behave differently in the call site (they need to |
| * be followed by format arguments), they have a special prefix (DUK_STR_FMT_ |
| * and 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 |
| |
| #define DUK_STR_INTERNAL_ERROR duk_str_internal_error |
| #define DUK_STR_INVALID_COUNT duk_str_invalid_count |
| #define DUK_STR_INVALID_CALL_ARGS duk_str_invalid_call_args |
| #define DUK_STR_NOT_CONSTRUCTABLE duk_str_not_constructable |
| #define DUK_STR_NOT_CALLABLE duk_str_not_callable |
| #define DUK_STR_NOT_EXTENSIBLE duk_str_not_extensible |
| #define DUK_STR_NOT_WRITABLE duk_str_not_writable |
| #define DUK_STR_NOT_CONFIGURABLE duk_str_not_configurable |
| |
| #if !defined(DUK_SINGLE_FILE) |
| DUK_INTERNAL_DECL const char *duk_str_internal_error; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_count; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_call_args; |
| DUK_INTERNAL_DECL const char *duk_str_not_constructable; |
| DUK_INTERNAL_DECL const char *duk_str_not_callable; |
| DUK_INTERNAL_DECL const char *duk_str_not_extensible; |
| DUK_INTERNAL_DECL const char *duk_str_not_writable; |
| DUK_INTERNAL_DECL const char *duk_str_not_configurable; |
| #endif /* !DUK_SINGLE_FILE */ |
| |
| #define DUK_STR_INVALID_CONTEXT duk_str_invalid_context |
| #define DUK_STR_INVALID_INDEX duk_str_invalid_call_args |
| #define DUK_STR_PUSH_BEYOND_ALLOC_STACK duk_str_push_beyond_alloc_stack |
| #define DUK_STR_NOT_UNDEFINED duk_str_unexpected_type |
| #define DUK_STR_NOT_NULL duk_str_unexpected_type |
| #define DUK_STR_NOT_BOOLEAN duk_str_unexpected_type |
| #define DUK_STR_NOT_NUMBER duk_str_unexpected_type |
| #define DUK_STR_NOT_STRING duk_str_unexpected_type |
| #define DUK_STR_NOT_OBJECT duk_str_unexpected_type |
| #define DUK_STR_NOT_POINTER duk_str_unexpected_type |
| #define DUK_STR_NOT_BUFFER duk_str_not_buffer /* still in use with verbose messages */ |
| #define DUK_STR_UNEXPECTED_TYPE duk_str_unexpected_type |
| #define DUK_STR_NOT_THREAD duk_str_unexpected_type |
| #define DUK_STR_NOT_COMPILEDFUNCTION duk_str_unexpected_type |
| #define DUK_STR_NOT_NATIVEFUNCTION duk_str_unexpected_type |
| #define DUK_STR_NOT_C_FUNCTION duk_str_unexpected_type |
| #define DUK_STR_NOT_FUNCTION duk_str_unexpected_type |
| #define DUK_STR_NOT_REGEXP duk_str_unexpected_type |
| #define DUK_STR_DEFAULTVALUE_COERCE_FAILED duk_str_defaultvalue_coerce_failed |
| #define DUK_STR_NUMBER_OUTSIDE_RANGE duk_str_number_outside_range |
| #define DUK_STR_NOT_OBJECT_COERCIBLE duk_str_not_object_coercible |
| #define DUK_STR_STRING_TOO_LONG duk_str_string_too_long |
| #define DUK_STR_BUFFER_TOO_LONG duk_str_buffer_too_long |
| #define DUK_STR_SPRINTF_TOO_LONG duk_str_sprintf_too_long |
| #define DUK_STR_ALLOC_FAILED duk_str_alloc_failed |
| #define DUK_STR_POP_TOO_MANY duk_str_pop_too_many |
| #define DUK_STR_WRONG_BUFFER_TYPE duk_str_wrong_buffer_type |
| #define DUK_STR_ENCODE_FAILED duk_str_encode_failed |
| #define DUK_STR_DECODE_FAILED duk_str_decode_failed |
| #define DUK_STR_NO_SOURCECODE duk_str_no_sourcecode |
| #define DUK_STR_CONCAT_RESULT_TOO_LONG duk_str_concat_result_too_long |
| #define DUK_STR_UNIMPLEMENTED duk_str_unimplemented |
| #define DUK_STR_UNSUPPORTED duk_str_unsupported |
| #define DUK_STR_ARRAY_LENGTH_OVER_2G duk_str_array_length_over_2g |
| |
| #if !defined(DUK_SINGLE_FILE) |
| DUK_INTERNAL_DECL const char *duk_str_invalid_context; |
| DUK_INTERNAL_DECL const char *duk_str_push_beyond_alloc_stack; |
| DUK_INTERNAL_DECL const char *duk_str_not_buffer; |
| DUK_INTERNAL_DECL const char *duk_str_unexpected_type; |
| DUK_INTERNAL_DECL const char *duk_str_defaultvalue_coerce_failed; |
| DUK_INTERNAL_DECL const char *duk_str_number_outside_range; |
| DUK_INTERNAL_DECL const char *duk_str_not_object_coercible; |
| DUK_INTERNAL_DECL const char *duk_str_string_too_long; |
| DUK_INTERNAL_DECL const char *duk_str_buffer_too_long; |
| DUK_INTERNAL_DECL const char *duk_str_sprintf_too_long; |
| DUK_INTERNAL_DECL const char *duk_str_alloc_failed; |
| DUK_INTERNAL_DECL const char *duk_str_pop_too_many; |
| DUK_INTERNAL_DECL const char *duk_str_wrong_buffer_type; |
| DUK_INTERNAL_DECL const char *duk_str_encode_failed; |
| DUK_INTERNAL_DECL const char *duk_str_decode_failed; |
| DUK_INTERNAL_DECL const char *duk_str_no_sourcecode; |
| DUK_INTERNAL_DECL const char *duk_str_concat_result_too_long; |
| DUK_INTERNAL_DECL const char *duk_str_unimplemented; |
| DUK_INTERNAL_DECL const char *duk_str_unsupported; |
| DUK_INTERNAL_DECL const char *duk_str_array_length_over_2g; |
| #endif /* !DUK_SINGLE_FILE */ |
| |
| #define DUK_STR_FMT_PTR duk_str_fmt_ptr |
| #define DUK_STR_FMT_INVALID_JSON duk_str_fmt_invalid_json |
| #define DUK_STR_JSONDEC_RECLIMIT duk_str_jsondec_reclimit |
| #define DUK_STR_JSONENC_RECLIMIT duk_str_jsonenc_reclimit |
| #define DUK_STR_CYCLIC_INPUT duk_str_cyclic_input |
| |
| #if !defined(DUK_SINGLE_FILE) |
| DUK_INTERNAL_DECL const char *duk_str_fmt_ptr; |
| DUK_INTERNAL_DECL const char *duk_str_fmt_invalid_json; |
| DUK_INTERNAL_DECL const char *duk_str_jsondec_reclimit; |
| DUK_INTERNAL_DECL const char *duk_str_jsonenc_reclimit; |
| DUK_INTERNAL_DECL const char *duk_str_cyclic_input; |
| #endif /* !DUK_SINGLE_FILE */ |
| |
| #define DUK_STR_PROXY_REVOKED duk_str_proxy_revoked |
| #define DUK_STR_INVALID_BASE duk_str_invalid_base |
| #define DUK_STR_STRICT_CALLER_READ duk_str_strict_caller_read |
| #define DUK_STR_PROXY_REJECTED duk_str_proxy_rejected |
| #define DUK_STR_INVALID_ARRAY_LENGTH duk_str_invalid_array_length |
| #define DUK_STR_ARRAY_LENGTH_WRITE_FAILED duk_str_array_length_write_failed |
| #define DUK_STR_ARRAY_LENGTH_NOT_WRITABLE duk_str_array_length_not_writable |
| #define DUK_STR_SETTER_UNDEFINED duk_str_setter_undefined |
| #define DUK_STR_REDEFINE_VIRT_PROP duk_str_redefine_virt_prop |
| #define DUK_STR_INVALID_DESCRIPTOR duk_str_invalid_descriptor |
| #define DUK_STR_PROPERTY_IS_VIRTUAL duk_str_property_is_virtual |
| |
| #if !defined(DUK_SINGLE_FILE) |
| DUK_INTERNAL_DECL const char *duk_str_proxy_revoked; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_base; |
| DUK_INTERNAL_DECL const char *duk_str_strict_caller_read; |
| DUK_INTERNAL_DECL const char *duk_str_proxy_rejected; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_array_length; |
| DUK_INTERNAL_DECL const char *duk_str_array_length_write_failed; |
| DUK_INTERNAL_DECL const char *duk_str_array_length_not_writable; |
| DUK_INTERNAL_DECL const char *duk_str_setter_undefined; |
| DUK_INTERNAL_DECL const char *duk_str_redefine_virt_prop; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_descriptor; |
| DUK_INTERNAL_DECL const char *duk_str_property_is_virtual; |
| #endif /* !DUK_SINGLE_FILE */ |
| |
| #define DUK_STR_PARSE_ERROR duk_str_parse_error |
| #define DUK_STR_DUPLICATE_LABEL duk_str_duplicate_label |
| #define DUK_STR_INVALID_LABEL duk_str_invalid_label |
| #define DUK_STR_INVALID_ARRAY_LITERAL duk_str_invalid_array_literal |
| #define DUK_STR_INVALID_OBJECT_LITERAL duk_str_invalid_object_literal |
| #define DUK_STR_INVALID_VAR_DECLARATION duk_str_invalid_var_declaration |
| #define DUK_STR_CANNOT_DELETE_IDENTIFIER duk_str_cannot_delete_identifier |
| #define DUK_STR_INVALID_EXPRESSION duk_str_invalid_expression |
| #define DUK_STR_INVALID_LVALUE duk_str_invalid_lvalue |
| #define DUK_STR_EXPECTED_IDENTIFIER duk_str_expected_identifier |
| #define DUK_STR_EMPTY_EXPR_NOT_ALLOWED duk_str_empty_expr_not_allowed |
| #define DUK_STR_INVALID_FOR duk_str_invalid_for |
| #define DUK_STR_INVALID_SWITCH duk_str_invalid_switch |
| #define DUK_STR_INVALID_BREAK_CONT_LABEL duk_str_invalid_break_cont_label |
| #define DUK_STR_INVALID_RETURN duk_str_invalid_return |
| #define DUK_STR_INVALID_TRY duk_str_invalid_try |
| #define DUK_STR_INVALID_THROW duk_str_invalid_throw |
| #define DUK_STR_WITH_IN_STRICT_MODE duk_str_with_in_strict_mode |
| #define DUK_STR_FUNC_STMT_NOT_ALLOWED duk_str_func_stmt_not_allowed |
| #define DUK_STR_UNTERMINATED_STMT duk_str_unterminated_stmt |
| #define DUK_STR_INVALID_ARG_NAME duk_str_invalid_arg_name |
| #define DUK_STR_INVALID_FUNC_NAME duk_str_invalid_func_name |
| #define DUK_STR_INVALID_GETSET_NAME duk_str_invalid_getset_name |
| #define DUK_STR_FUNC_NAME_REQUIRED duk_str_func_name_required |
| |
| #if !defined(DUK_SINGLE_FILE) |
| DUK_INTERNAL_DECL const char *duk_str_parse_error; |
| DUK_INTERNAL_DECL const char *duk_str_duplicate_label; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_label; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_array_literal; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_object_literal; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_var_declaration; |
| DUK_INTERNAL_DECL const char *duk_str_cannot_delete_identifier; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_expression; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_lvalue; |
| DUK_INTERNAL_DECL const char *duk_str_expected_identifier; |
| DUK_INTERNAL_DECL const char *duk_str_empty_expr_not_allowed; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_for; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_switch; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_break_cont_label; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_return; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_try; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_throw; |
| DUK_INTERNAL_DECL const char *duk_str_with_in_strict_mode; |
| DUK_INTERNAL_DECL const char *duk_str_func_stmt_not_allowed; |
| DUK_INTERNAL_DECL const char *duk_str_unterminated_stmt; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_arg_name; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_func_name; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_getset_name; |
| DUK_INTERNAL_DECL const char *duk_str_func_name_required; |
| #endif /* !DUK_SINGLE_FILE */ |
| |
| #define DUK_STR_INVALID_QUANTIFIER_NO_ATOM duk_str_invalid_quantifier_no_atom |
| #define DUK_STR_INVALID_QUANTIFIER_VALUES duk_str_invalid_quantifier_values |
| #define DUK_STR_QUANTIFIER_TOO_MANY_COPIES duk_str_quantifier_too_many_copies |
| #define DUK_STR_UNEXPECTED_CLOSING_PAREN duk_str_unexpected_closing_paren |
| #define DUK_STR_UNEXPECTED_END_OF_PATTERN duk_str_unexpected_end_of_pattern |
| #define DUK_STR_UNEXPECTED_REGEXP_TOKEN duk_str_unexpected_regexp_token |
| #define DUK_STR_INVALID_REGEXP_FLAGS duk_str_invalid_regexp_flags |
| #define DUK_STR_INVALID_BACKREFS duk_str_invalid_backrefs |
| |
| #if !defined(DUK_SINGLE_FILE) |
| DUK_INTERNAL_DECL const char *duk_str_invalid_quantifier_no_atom; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_quantifier_values; |
| DUK_INTERNAL_DECL const char *duk_str_quantifier_too_many_copies; |
| DUK_INTERNAL_DECL const char *duk_str_unexpected_closing_paren; |
| DUK_INTERNAL_DECL const char *duk_str_unexpected_end_of_pattern; |
| DUK_INTERNAL_DECL const char *duk_str_unexpected_regexp_token; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_regexp_flags; |
| DUK_INTERNAL_DECL const char *duk_str_invalid_backrefs; |
| #endif /* !DUK_SINGLE_FILE */ |
| |
| #define DUK_STR_VALSTACK_LIMIT duk_str_valstack_limit |
| #define DUK_STR_CALLSTACK_LIMIT duk_str_callstack_limit |
| #define DUK_STR_CATCHSTACK_LIMIT duk_str_catchstack_limit |
| #define DUK_STR_PROTOTYPE_CHAIN_LIMIT duk_str_prototype_chain_limit |
| #define DUK_STR_BOUND_CHAIN_LIMIT duk_str_bound_chain_limit |
| #define DUK_STR_C_CALLSTACK_LIMIT duk_str_c_callstack_limit |
| #define DUK_STR_COMPILER_RECURSION_LIMIT duk_str_compiler_recursion_limit |
| #define DUK_STR_BYTECODE_LIMIT duk_str_bytecode_limit |
| #define DUK_STR_REG_LIMIT duk_str_reg_limit |
| #define DUK_STR_TEMP_LIMIT duk_str_temp_limit |
| #define DUK_STR_CONST_LIMIT duk_str_const_limit |
| #define DUK_STR_FUNC_LIMIT duk_str_func_limit |
| #define DUK_STR_REGEXP_COMPILER_RECURSION_LIMIT duk_str_regexp_compiler_recursion_limit |
| #define DUK_STR_REGEXP_EXECUTOR_RECURSION_LIMIT duk_str_regexp_executor_recursion_limit |
| #define DUK_STR_REGEXP_EXECUTOR_STEP_LIMIT duk_str_regexp_executor_step_limit |
| |
| #if !defined(DUK_SINGLE_FILE) |
| DUK_INTERNAL_DECL const char *duk_str_valstack_limit; |
| DUK_INTERNAL_DECL const char *duk_str_callstack_limit; |
| DUK_INTERNAL_DECL const char *duk_str_catchstack_limit; |
| DUK_INTERNAL_DECL const char *duk_str_prototype_chain_limit; |
| DUK_INTERNAL_DECL const char *duk_str_bound_chain_limit; |
| DUK_INTERNAL_DECL const char *duk_str_c_callstack_limit; |
| DUK_INTERNAL_DECL const char *duk_str_compiler_recursion_limit; |
| DUK_INTERNAL_DECL const char *duk_str_bytecode_limit; |
| DUK_INTERNAL_DECL const char *duk_str_reg_limit; |
| DUK_INTERNAL_DECL const char *duk_str_temp_limit; |
| DUK_INTERNAL_DECL const char *duk_str_const_limit; |
| DUK_INTERNAL_DECL const char *duk_str_func_limit; |
| DUK_INTERNAL_DECL const char *duk_str_regexp_compiler_recursion_limit; |
| DUK_INTERNAL_DECL const char *duk_str_regexp_executor_recursion_limit; |
| DUK_INTERNAL_DECL const char *duk_str_regexp_executor_step_limit; |
| #endif /* !DUK_SINGLE_FILE */ |
| |
| #if !defined(DUK_SINGLE_FILE) |
| DUK_INTERNAL_DECL const char *duk_str_anon; |
| #endif /* !DUK_SINGLE_FILE */ |
| |
| #endif /* DUK_ERRMSG_H_INCLUDED */ |