| Index: src/objects-inl.h
|
| ===================================================================
|
| --- src/objects-inl.h (revision 2489)
|
| +++ src/objects-inl.h (working copy)
|
| @@ -1075,7 +1075,12 @@
|
|
|
|
|
| int JSObject::GetHeaderSize() {
|
| - switch (map()->instance_type()) {
|
| + InstanceType type = map()->instance_type();
|
| + // Check for the most common kind of JavaScript object before
|
| + // falling into the generic switch. This speeds up the internal
|
| + // field operations considerably on average.
|
| + if (type == JS_OBJECT_TYPE) return JSObject::kHeaderSize;
|
| + switch (type) {
|
| case JS_GLOBAL_PROXY_TYPE:
|
| return JSGlobalProxy::kSize;
|
| case JS_GLOBAL_OBJECT_TYPE:
|
| @@ -1090,7 +1095,6 @@
|
| return JSValue::kSize;
|
| case JS_REGEXP_TYPE:
|
| return JSValue::kSize;
|
| - case JS_OBJECT_TYPE:
|
| case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
|
| return JSObject::kHeaderSize;
|
| default:
|
|
|