Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 100f4d2fdf9be1616265a71a90e3041870214009..9e1153a9fe479d606b1f7b536b69d87d866dc037 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -146,11 +146,11 @@ bool LCodeGen::GeneratePrologue() { |
// fp: Caller's frame pointer. |
// lr: Caller's pc. |
- // Strict mode functions need to replace the receiver with undefined |
- // when called as functions (without an explicit receiver |
- // object). r5 is zero for method calls and non-zero for function |
- // calls. |
- if (info_->is_strict_mode()) { |
+ // Strict mode functions and builtins need to replace the receiver |
+ // with undefined when called as functions (without an explicit |
+ // receiver object). r5 is zero for method calls and non-zero for |
+ // function calls. |
+ if (info_->is_strict_mode() || info_->is_native()) { |
Label ok; |
__ cmp(r5, Operand(0)); |
__ b(eq, &ok); |