1320408 - Part 15: Change NativeObject::addDataProperty to static method.

This commit is contained in:
Gaming4JC 2019-06-08 23:29:58 -04:00 • committed by Roy Tam
commit a2451c8234
6 changed files with 21 additions and 21 deletions

View file

@ -4055,7 +4055,7 @@ AnalyzePoppedThis(JSContext* cx, ObjectGroup* group,
// Add the property to the object, being careful not to update type information. // Add the property to the object, being careful not to update type information.
DebugOnly<unsigned> slotSpan = baseobj->slotSpan(); DebugOnly<unsigned> slotSpan = baseobj->slotSpan();
MOZ_ASSERT(!baseobj->containsPure(id)); MOZ_ASSERT(!baseobj->containsPure(id));
if (!baseobj->addDataProperty(cx, id, baseobj->slotSpan(), JSPROP_ENUMERATE)) if (!NativeObject::addDataProperty(cx, baseobj, id, baseobj->slotSpan(), JSPROP_ENUMERATE))
return false; return false;
MOZ_ASSERT(baseobj->slotSpan() != slotSpan); MOZ_ASSERT(baseobj->slotSpan() != slotSpan);
MOZ_ASSERT(!baseobj->inDictionaryMode()); MOZ_ASSERT(!baseobj->inDictionaryMode());

View file

@ -2905,8 +2905,8 @@ StringObject::assignInitialShape(ExclusiveContext* cx, Handle<StringObject*> obj
{ {
MOZ_ASSERT(obj->empty()); MOZ_ASSERT(obj->empty());
return obj->addDataProperty(cx, cx->names().length, LENGTH_SLOT, return NativeObject::addDataProperty(cx, obj, cx->names().length, LENGTH_SLOT,
JSPROP_PERMANENT | JSPROP_READONLY); JSPROP_PERMANENT | JSPROP_READONLY);
} }
JSObject* JSObject*

View file

@ -29,11 +29,11 @@ js::ErrorObject::assignInitialShape(ExclusiveContext* cx, Handle<ErrorObject*> o
{ {
MOZ_ASSERT(obj->empty()); MOZ_ASSERT(obj->empty());
if (!obj->addDataProperty(cx, cx->names().fileName, FILENAME_SLOT, 0)) if (!NativeObject::addDataProperty(cx, obj, cx->names().fileName, FILENAME_SLOT, 0))
return nullptr; return nullptr;
if (!obj->addDataProperty(cx, cx->names().lineNumber, LINENUMBER_SLOT, 0)) if (!NativeObject::addDataProperty(cx, obj, cx->names().lineNumber, LINENUMBER_SLOT, 0))
return nullptr; return nullptr;
return obj->addDataProperty(cx, cx->names().columnNumber, COLUMNNUMBER_SLOT, 0); return NativeObject::addDataProperty(cx, obj, cx->names().columnNumber, COLUMNNUMBER_SLOT, 0);
} }
/* static */ bool /* static */ bool
@ -57,7 +57,7 @@ js::ErrorObject::init(JSContext* cx, Handle<ErrorObject*> obj, JSExnType type,
// |new Error()|. // |new Error()|.
RootedShape messageShape(cx); RootedShape messageShape(cx);
if (message) { if (message) {
messageShape = obj->addDataProperty(cx, cx->names().message, MESSAGE_SLOT, 0); messageShape = NativeObject::addDataProperty(cx, obj, cx->names().message, MESSAGE_SLOT, 0);
if (!messageShape) if (!messageShape)
return false; return false;
MOZ_ASSERT(messageShape->slot() == MESSAGE_SLOT); MOZ_ASSERT(messageShape->slot() == MESSAGE_SLOT);

View file

@ -996,23 +996,22 @@ NativeObject::freeSlot(ExclusiveContext* cx, uint32_t slot)
setSlot(slot, UndefinedValue()); setSlot(slot, UndefinedValue());
} }
Shape* /* static */ Shape*
NativeObject::addDataProperty(ExclusiveContext* cx, jsid idArg, uint32_t slot, unsigned attrs) NativeObject::addDataProperty(ExclusiveContext* cx, HandleNativeObject obj,
jsid idArg, uint32_t slot, unsigned attrs)
{ {
MOZ_ASSERT(!(attrs & (JSPROP_GETTER | JSPROP_SETTER))); MOZ_ASSERT(!(attrs & (JSPROP_GETTER | JSPROP_SETTER)));
RootedNativeObject self(cx, this);
RootedId id(cx, idArg); RootedId id(cx, idArg);
return addProperty(cx, self, id, nullptr, nullptr, slot, attrs, 0); return addProperty(cx, obj, id, nullptr, nullptr, slot, attrs, 0);
} }
Shape* /* static */ Shape*
NativeObject::addDataProperty(ExclusiveContext* cx, HandlePropertyName name, NativeObject::addDataProperty(ExclusiveContext* cx, HandleNativeObject obj,
uint32_t slot, unsigned attrs) HandlePropertyName name, uint32_t slot, unsigned attrs)
{ {
MOZ_ASSERT(!(attrs & (JSPROP_GETTER | JSPROP_SETTER))); MOZ_ASSERT(!(attrs & (JSPROP_GETTER | JSPROP_SETTER)));
RootedNativeObject self(cx, this);
RootedId id(cx, NameToId(name)); RootedId id(cx, NameToId(name));
return addProperty(cx, self, id, nullptr, nullptr, slot, attrs, 0); return addProperty(cx, obj, id, nullptr, nullptr, slot, attrs, 0);
} }
template <AllowGC allowGC> template <AllowGC allowGC>

View file

@ -741,10 +741,10 @@ class NativeObject : public ShapedObject
bool allowDictionary = true); bool allowDictionary = true);
/* Add a data property whose id is not yet in this scope. */ /* Add a data property whose id is not yet in this scope. */
Shape* addDataProperty(ExclusiveContext* cx, static Shape* addDataProperty(ExclusiveContext* cx, HandleNativeObject obj,
jsid id_, uint32_t slot, unsigned attrs); jsid id_, uint32_t slot, unsigned attrs);
Shape* addDataProperty(ExclusiveContext* cx, HandlePropertyName name, static Shape* addDataProperty(ExclusiveContext* cx, HandleNativeObject obj,
uint32_t slot, unsigned attrs); HandlePropertyName name, uint32_t slot, unsigned attrs);
/* Add or overwrite a property for id in this scope. */ /* Add or overwrite a property for id in this scope. */
static Shape* static Shape*

View file

@ -300,7 +300,8 @@ RegExpObject::assignInitialShape(ExclusiveContext* cx, Handle<RegExpObject*> sel
JS_STATIC_ASSERT(LAST_INDEX_SLOT == 0); JS_STATIC_ASSERT(LAST_INDEX_SLOT == 0);
/* The lastIndex property alone is writable but non-configurable. */ /* The lastIndex property alone is writable but non-configurable. */
return self->addDataProperty(cx, cx->names().lastIndex, LAST_INDEX_SLOT, JSPROP_PERMANENT); return NativeObject::addDataProperty(cx, self, cx->names().lastIndex, LAST_INDEX_SLOT,
JSPROP_PERMANENT);
} }
void void