summaryrefslogtreecommitdiffstats
path: root/js/src/vm/GlobalObject.h
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-03-19 09:21:55 +0100
committerwolfbeast <mcwerewolf@gmail.com>2018-03-19 09:23:23 +0100
commitfaa5f0df26e09d1f2e633618476294d112c24322 (patch)
treed9cc82bd54a71c51146924e975aef4861e67cd27 /js/src/vm/GlobalObject.h
parent393ee744a8d44494a2a3750aec8e3e9845ecf780 (diff)
parent77e607426f03524bdaf06bfc6799f5e9273051b9 (diff)
downloadUXP-faa5f0df26e09d1f2e633618476294d112c24322.tar
UXP-faa5f0df26e09d1f2e633618476294d112c24322.tar.gz
UXP-faa5f0df26e09d1f2e633618476294d112c24322.tar.lz
UXP-faa5f0df26e09d1f2e633618476294d112c24322.tar.xz
UXP-faa5f0df26e09d1f2e633618476294d112c24322.zip
Prototypes should be regular objects.
This resolves #76 Merged remote-tracking branch 'janek/js_error_ordinary-object_1'
Diffstat (limited to 'js/src/vm/GlobalObject.h')
-rw-r--r--js/src/vm/GlobalObject.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/js/src/vm/GlobalObject.h b/js/src/vm/GlobalObject.h
index 05984bc5f..3534ef2f6 100644
--- a/js/src/vm/GlobalObject.h
+++ b/js/src/vm/GlobalObject.h
@@ -427,6 +427,18 @@ class GlobalObject : public NativeObject
return &global->getPrototype(key).toObject();
}
+ static JSFunction*
+ getOrCreateErrorConstructor(JSContext* cx, Handle<GlobalObject*> global) {
+ if (!ensureConstructor(cx, global, JSProto_Error))
+ return nullptr;
+ return &global->getConstructor(JSProto_Error).toObject().as<JSFunction>();
+ }
+
+ static JSObject*
+ getOrCreateErrorPrototype(JSContext* cx, Handle<GlobalObject*> global) {
+ return getOrCreateCustomErrorPrototype(cx, global, JSEXN_ERR);
+ }
+
static NativeObject* getOrCreateSetPrototype(JSContext* cx, Handle<GlobalObject*> global) {
if (!ensureConstructor(cx, global, JSProto_Set))
return nullptr;
@@ -1003,10 +1015,7 @@ GenericCreatePrototype(JSContext* cx, JSProtoKey key)
inline JSProtoKey
StandardProtoKeyOrNull(const JSObject* obj)
{
- JSProtoKey key = JSCLASS_CACHED_PROTO_KEY(obj->getClass());
- if (key == JSProto_Error)
- return GetExceptionProtoKey(obj->as<ErrorObject>().type());
- return key;
+ return JSCLASS_CACHED_PROTO_KEY(obj->getClass());
}
JSObject*