| Index: src/compiler.cc
|
| ===================================================================
|
| --- src/compiler.cc (revision 3106)
|
| +++ src/compiler.cc (working copy)
|
| @@ -458,11 +458,6 @@
|
| ASSERT(scope->num_heap_slots() == 0);
|
| ASSERT(scope->arguments() == NULL);
|
|
|
| - if (fun->materialized_literal_count() > 0) {
|
| - if (FLAG_trace_bailout) PrintF("Unsupported literal\n");
|
| - return NORMAL;
|
| - }
|
| -
|
| has_supported_syntax_ = true;
|
| VisitDeclarations(fun->scope()->declarations());
|
| if (!has_supported_syntax_) return NORMAL;
|
| @@ -649,7 +644,14 @@
|
|
|
|
|
| void CodeGenSelector::VisitArrayLiteral(ArrayLiteral* expr) {
|
| - BAILOUT("ArrayLiteral");
|
| + ZoneList<Expression*>* subexprs = expr->values();
|
| + for (int i = 0, len = subexprs->length(); i < len; i++) {
|
| + Expression* subexpr = subexprs->at(i);
|
| + if (subexpr->AsLiteral() != NULL) continue;
|
| + if (CompileTimeValue::IsCompileTimeValue(subexpr)) continue;
|
| + Visit(subexpr);
|
| + CHECK_BAILOUT;
|
| + }
|
| }
|
|
|
|
|
|
|