+2014-06-11 Ryosuke Niwa <rniwa@webkit.org>
+
+ Structure::get should instantiate DeferGC only when materializing property map
+ https://bugs.webkit.org/show_bug.cgi?id=133727
+
+ Rubber-stamped by Andreas Kling.
+
+ Make materializePropertyMapIfNecessary always inline.
+
+ This is ~12% improvement on the microbenchmark attached in the bug.
+
+ * runtime/Structure.h:
+ (JSC::Structure::materializePropertyMapIfNecessary):
+ (JSC::Structure::materializePropertyMapIfNecessaryForPinning):
+
2014-06-11 Ryosuke Niwa <rniwa@webkit.org>
Structure::get should instantiate DeferGC only when materializing property map
PropertyTable* copyPropertyTable(VM&, Structure* owner);
PropertyTable* copyPropertyTableForPinning(VM&, Structure* owner);
JS_EXPORT_PRIVATE void materializePropertyMap(VM&);
- void materializePropertyMapIfNecessary(VM& vm, DeferGC&)
+ ALWAYS_INLINE void materializePropertyMapIfNecessary(VM& vm, DeferGC&)
{
ASSERT(!isCompilationThread());
ASSERT(structure()->classInfo() == info());
if (!propertyTable() && previousID())
materializePropertyMap(vm);
}
- void materializePropertyMapIfNecessary(VM& vm, PropertyTable*& table)
+ ALWAYS_INLINE void materializePropertyMapIfNecessary(VM& vm, PropertyTable*& table)
{
ASSERT(!isCompilationThread());
ASSERT(structure()->classInfo() == info());