| Index: src/contexts.h
|
| diff --git a/src/contexts.h b/src/contexts.h
|
| index 07750effb3574b74c2cfbc9f5196d08dd7c32316..7cf73eec7dae542ea00a273dc1b8a6e96f988997 100644
|
| --- a/src/contexts.h
|
| +++ b/src/contexts.h
|
| @@ -90,51 +90,54 @@ enum BindingFlags {
|
| V(MATH_FLOOR, JSFunction, math_floor) \
|
| V(MATH_SQRT, JSFunction, math_sqrt)
|
|
|
| -#define NATIVE_CONTEXT_IMPORTED_FIELDS(V) \
|
| - V(ARRAY_CONCAT_INDEX, JSFunction, array_concat) \
|
| - V(ARRAY_POP_INDEX, JSFunction, array_pop) \
|
| - V(ARRAY_PUSH_INDEX, JSFunction, array_push) \
|
| - V(ARRAY_SHIFT_INDEX, JSFunction, array_shift) \
|
| - V(ARRAY_SPLICE_INDEX, JSFunction, array_splice) \
|
| - V(ARRAY_SLICE_INDEX, JSFunction, array_slice) \
|
| - V(ARRAY_UNSHIFT_INDEX, JSFunction, array_unshift) \
|
| - V(ARRAY_VALUES_ITERATOR_INDEX, JSFunction, array_values_iterator) \
|
| - V(DERIVED_GET_TRAP_INDEX, JSFunction, derived_get_trap) \
|
| - V(ERROR_FUNCTION_INDEX, JSFunction, error_function) \
|
| - V(EVAL_ERROR_FUNCTION_INDEX, JSFunction, eval_error_function) \
|
| - V(GET_STACK_TRACE_LINE_INDEX, JSFunction, get_stack_trace_line_fun) \
|
| - V(GLOBAL_EVAL_FUN_INDEX, JSFunction, global_eval_fun) \
|
| - V(JSON_SERIALIZE_ADAPTER_INDEX, JSFunction, json_serialize_adapter) \
|
| - V(MAKE_ERROR_FUNCTION_INDEX, JSFunction, make_error_function) \
|
| - V(MAP_DELETE_METHOD_INDEX, JSFunction, map_delete) \
|
| - V(MAP_GET_METHOD_INDEX, JSFunction, map_get) \
|
| - V(MAP_HAS_METHOD_INDEX, JSFunction, map_has) \
|
| - V(MAP_SET_METHOD_INDEX, JSFunction, map_set) \
|
| - V(MATH_POW_METHOD_INDEX, JSFunction, math_pow) \
|
| - V(MESSAGE_GET_COLUMN_NUMBER_INDEX, JSFunction, message_get_column_number) \
|
| - V(MESSAGE_GET_LINE_NUMBER_INDEX, JSFunction, message_get_line_number) \
|
| - V(MESSAGE_GET_SOURCE_LINE_INDEX, JSFunction, message_get_source_line) \
|
| - V(NO_SIDE_EFFECTS_TO_STRING_FUN_INDEX, JSFunction, \
|
| - no_side_effects_to_string_fun) \
|
| - V(OBJECT_VALUE_OF, JSFunction, object_value_of) \
|
| - V(OBJECT_TO_STRING, JSFunction, object_to_string) \
|
| - V(PROMISE_CATCH_INDEX, JSFunction, promise_catch) \
|
| - V(PROMISE_CHAIN_INDEX, JSFunction, promise_chain) \
|
| - V(PROMISE_CREATE_INDEX, JSFunction, promise_create) \
|
| - V(PROMISE_FUNCTION_INDEX, JSFunction, promise_function) \
|
| - V(PROMISE_HAS_USER_DEFINED_REJECT_HANDLER_INDEX, JSFunction, \
|
| - promise_has_user_defined_reject_handler) \
|
| - V(PROMISE_REJECT_INDEX, JSFunction, promise_reject) \
|
| - V(PROMISE_RESOLVE_INDEX, JSFunction, promise_resolve) \
|
| - V(PROMISE_THEN_INDEX, JSFunction, promise_then) \
|
| - V(RANGE_ERROR_FUNCTION_INDEX, JSFunction, range_error_function) \
|
| - V(REFERENCE_ERROR_FUNCTION_INDEX, JSFunction, reference_error_function) \
|
| - V(SET_ADD_METHOD_INDEX, JSFunction, set_add) \
|
| - V(SET_DELETE_METHOD_INDEX, JSFunction, set_delete) \
|
| - V(SET_HAS_METHOD_INDEX, JSFunction, set_has) \
|
| - V(STACK_OVERFLOW_BOILERPLATE_INDEX, JSObject, stack_overflow_boilerplate) \
|
| - V(SYNTAX_ERROR_FUNCTION_INDEX, JSFunction, syntax_error_function) \
|
| - V(TYPE_ERROR_FUNCTION_INDEX, JSFunction, type_error_function) \
|
| +#define NATIVE_CONTEXT_IMPORTED_FIELDS(V) \
|
| + V(ARRAY_CONCAT_INDEX, JSFunction, array_concat) \
|
| + V(ARRAY_POP_INDEX, JSFunction, array_pop) \
|
| + V(ARRAY_PUSH_INDEX, JSFunction, array_push) \
|
| + V(ARRAY_SHIFT_INDEX, JSFunction, array_shift) \
|
| + V(ARRAY_SPLICE_INDEX, JSFunction, array_splice) \
|
| + V(ARRAY_SLICE_INDEX, JSFunction, array_slice) \
|
| + V(ARRAY_UNSHIFT_INDEX, JSFunction, array_unshift) \
|
| + V(ARRAY_VALUES_ITERATOR_INDEX, JSFunction, array_values_iterator) \
|
| + V(DERIVED_GET_TRAP_INDEX, JSFunction, derived_get_trap) \
|
| + V(ERROR_FUNCTION_INDEX, JSFunction, error_function) \
|
| + V(EVAL_ERROR_FUNCTION_INDEX, JSFunction, eval_error_function) \
|
| + V(GET_STACK_TRACE_LINE_INDEX, JSFunction, get_stack_trace_line_fun) \
|
| + V(GLOBAL_EVAL_FUN_INDEX, JSFunction, global_eval_fun) \
|
| + V(JSON_SERIALIZE_ADAPTER_INDEX, JSFunction, json_serialize_adapter) \
|
| + V(MAKE_ERROR_FUNCTION_INDEX, JSFunction, make_error_function) \
|
| + V(MAP_DELETE_METHOD_INDEX, JSFunction, map_delete) \
|
| + V(MAP_GET_METHOD_INDEX, JSFunction, map_get) \
|
| + V(MAP_HAS_METHOD_INDEX, JSFunction, map_has) \
|
| + V(MAP_SET_METHOD_INDEX, JSFunction, map_set) \
|
| + V(MATH_POW_METHOD_INDEX, JSFunction, math_pow) \
|
| + V(MESSAGE_GET_COLUMN_NUMBER_INDEX, JSFunction, message_get_column_number) \
|
| + V(MESSAGE_GET_LINE_NUMBER_INDEX, JSFunction, message_get_line_number) \
|
| + V(MESSAGE_GET_SOURCE_LINE_INDEX, JSFunction, message_get_source_line) \
|
| + V(NO_SIDE_EFFECTS_TO_STRING_FUN_INDEX, JSFunction, \
|
| + no_side_effects_to_string_fun) \
|
| + V(OBJECT_VALUE_OF, JSFunction, object_value_of) \
|
| + V(OBJECT_TO_STRING, JSFunction, object_to_string) \
|
| + V(PROMISE_CATCH_INDEX, JSFunction, promise_catch) \
|
| + V(PROMISE_CHAIN_INDEX, JSFunction, promise_chain) \
|
| + V(PROMISE_CREATE_INDEX, JSFunction, promise_create) \
|
| + V(PROMISE_FUNCTION_INDEX, JSFunction, promise_function) \
|
| + V(PROMISE_HAS_USER_DEFINED_REJECT_HANDLER_INDEX, JSFunction, \
|
| + promise_has_user_defined_reject_handler) \
|
| + V(PROMISE_REJECT_INDEX, JSFunction, promise_reject) \
|
| + V(PROMISE_RESOLVE_INDEX, JSFunction, promise_resolve) \
|
| + V(PROMISE_CREATE_RESOLVED_INDEX, JSFunction, promise_create_resolved) \
|
| + V(PROMISE_CREATE_REJECTED_INDEX, JSFunction, promise_create_rejected) \
|
| + V(ASYNC_FUNCTION_AWAIT_INDEX, JSFunction, async_function_await) \
|
| + V(PROMISE_THEN_INDEX, JSFunction, promise_then) \
|
| + V(RANGE_ERROR_FUNCTION_INDEX, JSFunction, range_error_function) \
|
| + V(REFERENCE_ERROR_FUNCTION_INDEX, JSFunction, reference_error_function) \
|
| + V(SET_ADD_METHOD_INDEX, JSFunction, set_add) \
|
| + V(SET_DELETE_METHOD_INDEX, JSFunction, set_delete) \
|
| + V(SET_HAS_METHOD_INDEX, JSFunction, set_has) \
|
| + V(STACK_OVERFLOW_BOILERPLATE_INDEX, JSObject, stack_overflow_boilerplate) \
|
| + V(SYNTAX_ERROR_FUNCTION_INDEX, JSFunction, syntax_error_function) \
|
| + V(TYPE_ERROR_FUNCTION_INDEX, JSFunction, type_error_function) \
|
| V(URI_ERROR_FUNCTION_INDEX, JSFunction, uri_error_function)
|
|
|
| #define NATIVE_CONTEXT_FIELDS(V) \
|
| @@ -144,6 +147,7 @@ enum BindingFlags {
|
| V(ACCESSOR_PROPERTY_DESCRIPTOR_MAP_INDEX, Map, \
|
| accessor_property_descriptor_map) \
|
| V(ALLOW_CODE_GEN_FROM_STRINGS_INDEX, Object, allow_code_gen_from_strings) \
|
| + V(ASYNC_FUNCTION_FUNCTION_INDEX, JSFunction, async_function_constructor) \
|
| V(ARRAY_BUFFER_FUN_INDEX, JSFunction, array_buffer_fun) \
|
| V(ARRAY_BUFFER_MAP_INDEX, Map, array_buffer_map) \
|
| V(ARRAY_FUNCTION_INDEX, JSFunction, array_function) \
|
| @@ -234,8 +238,10 @@ enum BindingFlags {
|
| V(SLOPPY_FUNCTION_WITH_READONLY_PROTOTYPE_MAP_INDEX, Map, \
|
| sloppy_function_with_readonly_prototype_map) \
|
| V(WASM_FUNCTION_MAP_INDEX, Map, wasm_function_map) \
|
| + V(SLOPPY_ASYNC_FUNCTION_MAP_INDEX, Map, sloppy_async_function_map) \
|
| V(SLOPPY_GENERATOR_FUNCTION_MAP_INDEX, Map, sloppy_generator_function_map) \
|
| V(SLOW_ALIASED_ARGUMENTS_MAP_INDEX, Map, slow_aliased_arguments_map) \
|
| + V(STRICT_ASYNC_FUNCTION_MAP_INDEX, Map, strict_async_function_map) \
|
| V(STRICT_ARGUMENTS_MAP_INDEX, Map, strict_arguments_map) \
|
| V(STRICT_FUNCTION_MAP_INDEX, Map, strict_function_map) \
|
| V(STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, \
|
| @@ -516,6 +522,11 @@ class Context: public FixedArray {
|
| : SLOPPY_GENERATOR_FUNCTION_MAP_INDEX;
|
| }
|
|
|
| + if (IsAsyncFunction(kind)) {
|
| + return is_strict(language_mode) ? STRICT_ASYNC_FUNCTION_MAP_INDEX
|
| + : SLOPPY_ASYNC_FUNCTION_MAP_INDEX;
|
| + }
|
| +
|
| if (IsClassConstructor(kind)) {
|
| // Use strict function map (no own "caller" / "arguments")
|
| return STRICT_FUNCTION_MAP_INDEX;
|
|
|