js_val * bootstrap_error() { js_val *error = JSNFUNC(error_new, 1); js_val *prototype = JSOBJ(); prototype->proto = fh->object_proto; // Error // ----- // Properties DEF(error, "prototype", prototype); // Error.prototype // --------------- // Properties DEF(prototype, "constructor", JSNFUNC(error_new, 1)); DEF(prototype, "name", JSSTR("Error")); DEF(prototype, "message", JSSTR("")); // Methods DEF(prototype, "toString", JSNFUNC(error_proto_to_string, 0)); fh_attach_prototype(prototype, fh->function_proto); return error; }
js_val * bootstrap_error(js_val *global) { js_val *error = JSNFUNC(error_new, 1); js_val *prototype = JSOBJ(); prototype->proto = fh->object_proto; // Error // ----- // Properties DEF(error, "prototype", prototype); // Error.prototype // --------------- // Properties DEF(prototype, "constructor", JSNFUNC(error_new, 1)); DEF(prototype, "name", JSSTR("Error")); DEF(prototype, "message", JSSTR("")); // Methods DEF(prototype, "toString", JSNFUNC(error_proto_to_string, 0)); fh_attach_prototype(prototype, fh->function_proto); // Other Error constructors // ------------------------ // EvalError js_val *error_eval = JSNFUNC(error_eval_new, 1); js_val *error_eval_proto = JSOBJ(); error_eval_proto->proto = prototype; DEF(error_eval, "prototype", error_eval_proto); DEF(global, "EvalError", error_eval); // RangeError js_val *error_range = JSNFUNC(error_range_new, 1); js_val *error_range_proto = JSOBJ(); error_range_proto->proto = prototype; DEF(error_range, "prototype", error_range_proto); DEF(global, "RangeError", error_range); // ReferenceError js_val *error_ref = JSNFUNC(error_ref_new, 1); js_val *error_ref_proto = JSOBJ(); error_ref_proto->proto = prototype; DEF(error_ref, "prototype", error_ref_proto); DEF(global, "ReferenceError", error_ref); // SyntaxError js_val *error_syntax = JSNFUNC(error_syntax_new, 1); js_val *error_syntax_proto = JSOBJ(); error_syntax_proto->proto = prototype; DEF(error_syntax, "prototype", error_syntax_proto); DEF(global, "SyntaxError", error_syntax); // TypeError js_val *error_type = JSNFUNC(error_type_new, 1); js_val *error_type_proto = JSOBJ(); error_type_proto->proto = prototype; DEF(error_type, "prototype", error_type_proto); DEF(global, "TypeError", error_type); // URIError js_val *error_uri = JSNFUNC(error_uri_new, 1); js_val *error_uri_proto = JSOBJ(); error_uri_proto->proto = prototype; DEF(error_uri, "prototype", error_uri_proto); DEF(global, "URIError", error_uri); return error; }