Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 4a662f86a31e1c232c465df96e7267a770d96047..a899aead55a8b3f35f9d39373edc107004292825 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -443,7 +443,7 @@ static Handle<Object> CreateArrayLiteralBoilerplate( |
for (int i = 0; i < content->length(); i++) { |
Object* current = content->get(i); |
ASSERT(!current->IsFixedArray()); |
- if (!current->IsSmi()) { |
+ if (!current->IsSmi() && !current->IsTheHole()) { |
has_non_smi = true; |
} |
} |
@@ -467,7 +467,7 @@ static Handle<Object> CreateArrayLiteralBoilerplate( |
content->set(i, *result); |
has_non_smi = true; |
} else { |
- if (!current->IsSmi()) { |
+ if (!current->IsSmi() && !current->IsTheHole()) { |
has_non_smi = true; |
} |
} |
@@ -8250,6 +8250,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_OptimizeFunctionOnNextCall) { |
RUNTIME_FUNCTION(MaybeObject*, Runtime_GetOptimizationStatus) { |
HandleScope scope(isolate); |
ASSERT(args.length() == 1); |
+ // The least significant bit (after untagging) indicates whether the |
+ // function is currently optimized, regardless of reason. |
if (!V8::UseCrankshaft()) { |
return Smi::FromInt(4); // 4 == "never". |
} |