| Index: src/crankshaft/hydrogen.cc
|
| diff --git a/src/crankshaft/hydrogen.cc b/src/crankshaft/hydrogen.cc
|
| index 57478f7cc6a504fc6f38e5ace3f8aa1f2d9759d8..1b259ede76b04a7e09b53c151c3f960e8acb4e25 100644
|
| --- a/src/crankshaft/hydrogen.cc
|
| +++ b/src/crankshaft/hydrogen.cc
|
| @@ -5501,10 +5501,10 @@ void HOptimizedGraphBuilder::VisitFunctionLiteral(FunctionLiteral* expr) {
|
| // We also have a stack overflow if the recursive compilation did.
|
| if (HasStackOverflow()) return;
|
| // Use the fast case closure allocation code that allocates in new
|
| - // space for nested functions that don't need literals cloning.
|
| + // space for nested functions that don't need pretenuring.
|
| HConstant* shared_info_value = Add<HConstant>(shared_info);
|
| HInstruction* instr;
|
| - if (!expr->pretenure() && shared_info->num_literals() == 0) {
|
| + if (!expr->pretenure()) {
|
| FastNewClosureStub stub(isolate(), shared_info->language_mode(),
|
| shared_info->kind());
|
| FastNewClosureDescriptor descriptor(isolate());
|
| @@ -8442,6 +8442,9 @@ bool HOptimizedGraphBuilder::TryInline(Handle<JSFunction> target,
|
| // does not remove the code with the deoptimization support.
|
| top_info()->AddInlinedFunction(target_info.shared_info());
|
|
|
| + // If target was lazily compiled, it's literals array may not yet be set up.
|
| + JSFunction::EnsureLiterals(target);
|
| +
|
| // ----------------------------------------------------------------
|
| // After this point, we've made a decision to inline this function (so
|
| // TryInline should always return true).
|
|
|