| 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".
 | 
|    }
 | 
| 
 |