Index: src/contexts.h |
diff --git a/src/contexts.h b/src/contexts.h |
index 3b4b7992c099bbc5f7393fc37d7fa5549284e119..a334fbecb1c2c13a88b8d2b8d94d26a036255608 100644 |
--- a/src/contexts.h |
+++ b/src/contexts.h |
@@ -122,12 +122,15 @@ enum BindingFlags { |
uint8_clamped_array_external_map) \ |
V(DATA_VIEW_FUN_INDEX, JSFunction, data_view_fun) \ |
V(SLOPPY_FUNCTION_MAP_INDEX, Map, sloppy_function_map) \ |
+ V(PLAIN_FUNCTION_MAP_INDEX, Map, plain_function_map) \ |
V(SLOPPY_FUNCTION_WITH_READONLY_PROTOTYPE_MAP_INDEX, Map, \ |
sloppy_function_with_readonly_prototype_map) \ |
V(STRICT_FUNCTION_MAP_INDEX, Map, strict_function_map) \ |
V(STRONG_FUNCTION_MAP_INDEX, Map, strong_function_map) \ |
V(SLOPPY_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, \ |
sloppy_function_without_prototype_map) \ |
+ V(PLAIN_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, \ |
+ plain_function_without_prototype_map) \ |
V(STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, \ |
strict_function_without_prototype_map) \ |
V(STRONG_CONSTRUCTOR_MAP_INDEX, Map, strong_constructor_map) \ |
@@ -176,8 +179,7 @@ enum BindingFlags { |
V(NATIVE_OBJECT_GET_NOTIFIER_INDEX, JSFunction, native_object_get_notifier) \ |
V(NATIVE_OBJECT_NOTIFIER_PERFORM_CHANGE, JSFunction, \ |
native_object_notifier_perform_change) \ |
- V(SLOPPY_GENERATOR_FUNCTION_MAP_INDEX, Map, sloppy_generator_function_map) \ |
- V(STRICT_GENERATOR_FUNCTION_MAP_INDEX, Map, strict_generator_function_map) \ |
+ V(GENERATOR_FUNCTION_MAP_INDEX, Map, generator_function_map) \ |
V(STRONG_GENERATOR_FUNCTION_MAP_INDEX, Map, strong_generator_function_map) \ |
V(GENERATOR_OBJECT_PROTOTYPE_MAP_INDEX, Map, generator_object_prototype_map) \ |
V(ITERATOR_RESULT_MAP_INDEX, Map, iterator_result_map) \ |
@@ -320,10 +322,12 @@ class Context: public FixedArray { |
STRICT_ARGUMENTS_MAP_INDEX, |
REGEXP_RESULT_MAP_INDEX, |
SLOPPY_FUNCTION_MAP_INDEX, |
+ PLAIN_FUNCTION_MAP_INDEX, |
SLOPPY_FUNCTION_WITH_READONLY_PROTOTYPE_MAP_INDEX, |
STRICT_FUNCTION_MAP_INDEX, |
STRONG_FUNCTION_MAP_INDEX, |
SLOPPY_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, |
+ PLAIN_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, |
STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, |
STRONG_CONSTRUCTOR_MAP_INDEX, |
BOUND_FUNCTION_MAP_INDEX, |
@@ -409,8 +413,7 @@ class Context: public FixedArray { |
NATIVE_OBJECT_OBSERVE_INDEX, |
NATIVE_OBJECT_GET_NOTIFIER_INDEX, |
NATIVE_OBJECT_NOTIFIER_PERFORM_CHANGE, |
- SLOPPY_GENERATOR_FUNCTION_MAP_INDEX, |
- STRICT_GENERATOR_FUNCTION_MAP_INDEX, |
+ GENERATOR_FUNCTION_MAP_INDEX, |
STRONG_GENERATOR_FUNCTION_MAP_INDEX, |
GENERATOR_OBJECT_PROTOTYPE_MAP_INDEX, |
ITERATOR_RESULT_MAP_INDEX, |
@@ -576,19 +579,22 @@ class Context: public FixedArray { |
static int FunctionMapIndex(LanguageMode language_mode, FunctionKind kind) { |
if (IsGeneratorFunction(kind)) { |
- return is_strong(language_mode) ? STRONG_GENERATOR_FUNCTION_MAP_INDEX : |
- is_strict(language_mode) ? STRICT_GENERATOR_FUNCTION_MAP_INDEX |
- : SLOPPY_GENERATOR_FUNCTION_MAP_INDEX; |
+ return is_strong(language_mode) ? STRONG_GENERATOR_FUNCTION_MAP_INDEX |
+ : GENERATOR_FUNCTION_MAP_INDEX; |
} |
if (IsConstructor(kind)) { |
- return is_strong(language_mode) ? STRONG_CONSTRUCTOR_MAP_INDEX : |
- is_strict(language_mode) ? STRICT_FUNCTION_MAP_INDEX |
- : SLOPPY_FUNCTION_MAP_INDEX; |
+ return is_strong(language_mode) ? STRONG_CONSTRUCTOR_MAP_INDEX |
+ : PLAIN_FUNCTION_MAP_INDEX; |
} |
- if (IsArrowFunction(kind) || IsConciseMethod(kind) || |
- IsAccessorFunction(kind)) { |
+ if (IsArrowFunction(kind) || IsConciseMethod(kind)) { |
+ return is_strong(language_mode) |
+ ? STRONG_FUNCTION_MAP_INDEX |
+ : PLAIN_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX; |
+ } |
+ |
+ if (IsAccessorFunction(kind)) { |
return is_strong(language_mode) ? STRONG_FUNCTION_MAP_INDEX : |
is_strict(language_mode) ? |
STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX : |