Chromium Code Reviews| Index: src/contexts.h |
| diff --git a/src/contexts.h b/src/contexts.h |
| index 3b4b7992c099bbc5f7393fc37d7fa5549284e119..fffc5b40c5effb744bdca92a75e0000bf990e892 100644 |
| --- a/src/contexts.h |
| +++ b/src/contexts.h |
| @@ -176,8 +176,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) \ |
|
rossberg
2015/03/26 15:06:45
For symmetry and possibly future uses, I would pre
caitp (gmail)
2015/03/26 15:09:46
Acknowledged.
caitp (gmail)
2015/03/26 15:35:47
Done, in fact
|
| 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) \ |
| @@ -409,8 +408,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,21 +574,20 @@ 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; |
| + // Use strict function map (no own "caller" / "arguments") |
| + return is_strong(language_mode) ? STRONG_CONSTRUCTOR_MAP_INDEX |
| + : STRICT_FUNCTION_MAP_INDEX; |
| } |
| if (IsArrowFunction(kind) || IsConciseMethod(kind) || |
| IsAccessorFunction(kind)) { |
| return is_strong(language_mode) ? STRONG_FUNCTION_MAP_INDEX : |
| - is_strict(language_mode) ? |
| + is_strict(language_mode) || !IsAccessorFunction(kind) ? |
| STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX : |
| SLOPPY_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX; |
| } |