| Index: src/stub-cache.cc
 | 
| diff --git a/src/stub-cache.cc b/src/stub-cache.cc
 | 
| index c481a74c24fc75538ce10f818bafdd64c02443aa..e8f53a1bfcf57571e3b14ea9f43786828648878b 100644
 | 
| --- a/src/stub-cache.cc
 | 
| +++ b/src/stub-cache.cc
 | 
| @@ -572,6 +572,8 @@ Handle<Code> StubCache::ComputeCallConstant(int argc,
 | 
|    CheckType check = RECEIVER_MAP_CHECK;
 | 
|    if (object->IsString()) {
 | 
|      check = STRING_CHECK;
 | 
| +  } else if (object->IsSymbol()) {
 | 
| +    check = SYMBOL_CHECK;
 | 
|    } else if (object->IsNumber()) {
 | 
|      check = NUMBER_CHECK;
 | 
|    } else if (object->IsBoolean()) {
 | 
| @@ -613,7 +615,8 @@ Handle<Code> StubCache::ComputeCallField(int argc,
 | 
|    // TODO(1233596): We cannot do receiver map check for non-JS objects
 | 
|    // because they may be represented as immediates without a
 | 
|    // map. Instead, we check against the map in the holder.
 | 
| -  if (object->IsNumber() || object->IsBoolean() || object->IsString()) {
 | 
| +  if (object->IsNumber() || object->IsSymbol() ||
 | 
| +      object->IsBoolean() || object->IsString()) {
 | 
|      object = holder;
 | 
|    }
 | 
|  
 | 
| @@ -651,7 +654,8 @@ Handle<Code> StubCache::ComputeCallInterceptor(int argc,
 | 
|    // TODO(1233596): We cannot do receiver map check for non-JS objects
 | 
|    // because they may be represented as immediates without a
 | 
|    // map. Instead, we check against the map in the holder.
 | 
| -  if (object->IsNumber() || object->IsBoolean() || object->IsString()) {
 | 
| +  if (object->IsNumber() || object->IsSymbol() ||
 | 
| +      object->IsBoolean() || object->IsString()) {
 | 
|      object = holder;
 | 
|    }
 | 
|  
 | 
| 
 |