Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 6e520bd85acf933872d52855e3cfe7ec4ef45f45..72147e899bbbd952e4f4af2b01a55aba85a3fb15 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -5884,10 +5884,11 @@ HEnvironment* HEnvironment::CopyForInlining( |
inner->SetValueAt(i, push); |
} |
} |
- // If the function we are inlining is a strict mode function, pass |
- // undefined as the receiver for function calls (instead of the |
- // global receiver). |
- if (function->strict_mode() && call_kind == CALL_AS_FUNCTION) { |
+ // If the function we are inlining is a strict mode function or a |
+ // builtin function, pass undefined as the receiver for function |
+ // calls (instead of the global receiver). |
+ if ((target->shared()->native() || function->strict_mode()) && |
+ call_kind == CALL_AS_FUNCTION) { |
inner->SetValueAt(0, undefined); |
} |
inner->SetValueAt(arity + 1, outer->LookupContext()); |