Index: src/arm/stub-cache-arm.cc |
diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc |
index 675fdf49b23957adf20d95a26273c85345a55de0..e623ea1914ff06e96447bfca8f722042090bd58e 100644 |
--- a/src/arm/stub-cache-arm.cc |
+++ b/src/arm/stub-cache-arm.cc |
@@ -2332,8 +2332,9 @@ MaybeObject* CallStubCompiler::CompileCallConstant(Object* object, |
break; |
case STRING_CHECK: |
- if (!function->IsBuiltin()) { |
- // Calling non-builtins with a value as receiver requires boxing. |
+ if (!function->IsBuiltin() && !function_info->strict_mode()) { |
+ // Calling non-strict non-builtins with a value as the receiver |
+ // requires boxing. |
__ jmp(&miss); |
} else { |
// Check that the object is a two-byte string or a symbol. |
@@ -2348,8 +2349,9 @@ MaybeObject* CallStubCompiler::CompileCallConstant(Object* object, |
break; |
case NUMBER_CHECK: { |
- if (!function->IsBuiltin()) { |
- // Calling non-builtins with a value as receiver requires boxing. |
+ if (!function->IsBuiltin() && !function_info->strict_mode()) { |
+ // Calling non-strict non-builtins with a value as the receiver |
+ // requires boxing. |
__ jmp(&miss); |
} else { |
Label fast; |
@@ -2369,8 +2371,9 @@ MaybeObject* CallStubCompiler::CompileCallConstant(Object* object, |
} |
case BOOLEAN_CHECK: { |
- if (!function->IsBuiltin()) { |
- // Calling non-builtins with a value as receiver requires boxing. |
+ if (!function->IsBuiltin() && !function_info->strict_mode()) { |
+ // Calling non-strict non-builtins with a value as the receiver |
+ // requires boxing. |
__ jmp(&miss); |
} else { |
Label fast; |