 Chromium Code Reviews
 Chromium Code Reviews Issue 6523052:
  CallIC and KeyedCallIC not wrapping this.  (Closed) 
  Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
    
  
    Issue 6523052:
  CallIC and KeyedCallIC not wrapping this.  (Closed) 
  Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge| 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()) { | 
| 
Lasse Reichstein
2011/02/16 13:34:30
It would be great if we could just make all builti
 
Martin Maly
2011/02/17 05:25:55
Good idea, Lasse. If it is ok, I'll put this on my
 | 
| + // 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; |