Example #1
0
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;
}
Example #2
0
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;
}