| Index: src/accessors.cc | 
| diff --git a/src/accessors.cc b/src/accessors.cc | 
| index 855ddb22b6731e7c59caadbcf90157678968ae40..a30bfd5e3c408e8afceb64e3c08ffae338ba21e6 100644 | 
| --- a/src/accessors.cc | 
| +++ b/src/accessors.cc | 
| @@ -649,19 +649,6 @@ const AccessorDescriptor Accessors::FunctionArguments = { | 
| // | 
|  | 
|  | 
| -static MaybeObject* CheckNonStrictCallerOrThrow( | 
| -    Isolate* isolate, | 
| -    JSFunction* caller) { | 
| -  DisableAssertNoAllocation enable_allocation; | 
| -  if (!caller->shared()->is_classic_mode()) { | 
| -    return isolate->Throw( | 
| -        *isolate->factory()->NewTypeError("strict_caller", | 
| -                                          HandleVector<Object>(NULL, 0))); | 
| -  } | 
| -  return caller; | 
| -} | 
| - | 
| - | 
| class FrameFunctionIterator { | 
| public: | 
| FrameFunctionIterator(Isolate* isolate, const AssertNoAllocation& promise) | 
| @@ -748,7 +735,14 @@ MaybeObject* Accessors::FunctionGetCaller(Object* object, void*) { | 
| if (caller->shared()->bound()) { | 
| return isolate->heap()->null_value(); | 
| } | 
| -  return CheckNonStrictCallerOrThrow(isolate, caller); | 
| +  // Censor if the caller is not a classic mode function. | 
| +  // Change from ES5, which used to throw, see: | 
| +  // https://bugs.ecmascript.org/show_bug.cgi?id=310 | 
| +  if (!caller->shared()->is_classic_mode()) { | 
| +    return isolate->heap()->null_value(); | 
| +  } | 
| + | 
| +  return caller; | 
| } | 
|  | 
|  | 
|  |