| Index: src/objects.cc
|
| ===================================================================
|
| --- src/objects.cc (revision 6967)
|
| +++ src/objects.cc (working copy)
|
| @@ -5476,9 +5476,11 @@
|
|
|
| bool JSFunction::IsInlineable() {
|
| if (IsBuiltin()) return false;
|
| + SharedFunctionInfo* shared_info = shared();
|
| // Check that the function has a script associated with it.
|
| - if (!shared()->script()->IsScript()) return false;
|
| - Code* code = shared()->code();
|
| + if (!shared_info->script()->IsScript()) return false;
|
| + if (shared_info->optimization_disabled()) return false;
|
| + Code* code = shared_info->code();
|
| if (code->kind() == Code::OPTIMIZED_FUNCTION) return true;
|
| // If we never ran this (unlikely) then lets try to optimize it.
|
| if (code->kind() != Code::FUNCTION) return true;
|
| @@ -7277,8 +7279,10 @@
|
| case EXTERNAL_INT_ELEMENTS:
|
| case EXTERNAL_UNSIGNED_INT_ELEMENTS:
|
| case EXTERNAL_FLOAT_ELEMENTS: {
|
| - MaybeObject* value = GetExternalElement(index);
|
| - if (!value->ToObjectUnchecked()->IsUndefined()) return value;
|
| + MaybeObject* maybe_value = GetExternalElement(index);
|
| + Object* value;
|
| + if (!maybe_value->ToObject(&value)) return maybe_value;
|
| + if (!value->IsUndefined()) return value;
|
| break;
|
| }
|
| case DICTIONARY_ELEMENTS: {
|
| @@ -7374,8 +7378,10 @@
|
| case EXTERNAL_INT_ELEMENTS:
|
| case EXTERNAL_UNSIGNED_INT_ELEMENTS:
|
| case EXTERNAL_FLOAT_ELEMENTS: {
|
| - MaybeObject* value = GetExternalElement(index);
|
| - if (!value->ToObjectUnchecked()->IsUndefined()) return value;
|
| + MaybeObject* maybe_value = GetExternalElement(index);
|
| + Object* value;
|
| + if (!maybe_value->ToObject(&value)) return maybe_value;
|
| + if (!value->IsUndefined()) return value;
|
| break;
|
| }
|
| case DICTIONARY_ELEMENTS: {
|
|
|