Patch by Vitaly Repeshko. Improve performance of internal fields
operations by adding a fast-case check for JS_OBJECT_TYPE in JSObject::GetHeaderSize(). Review URL: http://codereview.chromium.org/155684 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
f8e622a620
commit
4f2cc4104e
@ -1075,7 +1075,12 @@ void JSGlobalPropertyCell::set_value(Object* val, WriteBarrierMode ignored) {
|
||||
|
||||
|
||||
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 @@ int JSObject::GetHeaderSize() {
|
||||
return JSValue::kSize;
|
||||
case JS_REGEXP_TYPE:
|
||||
return JSValue::kSize;
|
||||
case JS_OBJECT_TYPE:
|
||||
case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
|
||||
return JSObject::kHeaderSize;
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user