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; |
} |