Use ordinary object for RegExp prototype

Issue #77
This commit is contained in:
janekptacijarabaci 2018-03-19 10:42:58 +01:00 • committed by Roy Tam
commit d275a63a71
3 changed files with 98 additions and 59 deletions

View file

@ -196,6 +196,12 @@ RegExpObject::trace(JSTracer* trc, JSObject* obj)
}
}
static JSObject*
CreateRegExpPrototype(JSContext* cx, JSProtoKey key)
{
return cx->global()->createBlankPrototype(cx, &RegExpObject::protoClass_);
}
static const ClassOps RegExpObjectClassOps = {
nullptr, /* addProperty */
nullptr, /* delProperty */
@ -229,6 +235,13 @@ const Class RegExpObject::class_ = {
&RegExpObjectClassSpec
};
const Class RegExpObject::protoClass_ = {
js_Object_str,
JSCLASS_HAS_CACHED_PROTO(JSProto_RegExp),
JS_NULL_CLASS_OPS,
&RegExpObjectClassSpec
};
RegExpObject*
RegExpObject::create(ExclusiveContext* cx, const char16_t* chars, size_t length, RegExpFlag flags,
TokenStream* tokenStream, LifoAlloc& alloc)