Index: src/contexts.h |
diff --git a/src/contexts.h b/src/contexts.h |
index 6a92a1b60fd20f1afaf83e3a38ce94c538b95c47..ecc8f4b2a89e4e05d3d54722e6c2b64807ff1141 100644 |
--- a/src/contexts.h |
+++ b/src/contexts.h |
@@ -94,15 +94,16 @@ enum BindingFlags { |
V(ARRAY_FUNCTION_INDEX, JSFunction, array_function) \ |
V(JS_ARRAY_MAPS_INDEX, Object, js_array_maps) \ |
V(JS_ARRAY_STRONG_MAPS_INDEX, Object, js_array_strong_maps) \ |
- V(DATE_FUNCTION_INDEX, JSFunction, date_function) \ |
- V(JSON_OBJECT_INDEX, JSObject, json_object) \ |
V(REGEXP_FUNCTION_INDEX, JSFunction, regexp_function) \ |
V(INITIAL_OBJECT_PROTOTYPE_INDEX, JSObject, initial_object_prototype) \ |
V(INITIAL_ARRAY_PROTOTYPE_INDEX, JSObject, initial_array_prototype) \ |
+ V(EMBEDDER_DATA_INDEX, FixedArray, embedder_data) \ |
V(CREATE_DATE_FUN_INDEX, JSFunction, create_date_fun) \ |
V(TO_NUMBER_FUN_INDEX, JSFunction, to_number_fun) \ |
V(TO_STRING_FUN_INDEX, JSFunction, to_string_fun) \ |
V(TO_DETAIL_STRING_FUN_INDEX, JSFunction, to_detail_string_fun) \ |
+ V(NO_SIDE_EFFECT_TO_STRING_FUN_INDEX, JSFunction, \ |
+ no_side_effect_to_string_fun) \ |
V(TO_INTEGER_FUN_INDEX, JSFunction, to_integer_fun) \ |
V(TO_LENGTH_FUN_INDEX, JSFunction, to_length_fun) \ |
V(GLOBAL_EVAL_FUN_INDEX, JSFunction, global_eval_fun) \ |
@@ -136,9 +137,7 @@ enum BindingFlags { |
V(SLOW_ALIASED_ARGUMENTS_MAP_INDEX, Map, slow_aliased_arguments_map) \ |
V(STRICT_ARGUMENTS_MAP_INDEX, Map, strict_arguments_map) \ |
V(MESSAGE_LISTENERS_INDEX, JSObject, message_listeners) \ |
- V(MAKE_MESSAGE_FUN_INDEX, JSFunction, make_message_fun) \ |
V(GET_STACK_TRACE_LINE_INDEX, JSFunction, get_stack_trace_line_fun) \ |
- V(CONFIGURE_GLOBAL_INDEX, JSFunction, configure_global_fun) \ |
V(FUNCTION_CACHE_INDEX, ObjectHashTable, function_cache) \ |
V(NORMALIZED_MAP_CACHE_INDEX, Object, normalized_map_cache) \ |
V(RUNTIME_CONTEXT_INDEX, Context, runtime_context) \ |
@@ -150,10 +149,16 @@ enum BindingFlags { |
V(CONTEXT_EXTENSION_FUNCTION_INDEX, JSFunction, context_extension_function) \ |
V(MAP_CACHE_INDEX, Object, map_cache) \ |
V(STRONG_MAP_CACHE_INDEX, Object, strong_map_cache) \ |
- V(EMBEDDER_DATA_INDEX, FixedArray, embedder_data) \ |
V(ALLOW_CODE_GEN_FROM_STRINGS_INDEX, Object, allow_code_gen_from_strings) \ |
V(ERROR_MESSAGE_FOR_CODE_GEN_FROM_STRINGS_INDEX, Object, \ |
error_message_for_code_gen_from_strings) \ |
+ V(ERROR_FUNCTION_INDEX, JSFunction, error_function) \ |
+ V(EVAL_ERROR_FUNCTION_INDEX, JSFunction, eval_error_function) \ |
+ V(RANGE_ERROR_FUNCTION_INDEX, JSFunction, range_error_function) \ |
+ V(REFERENCE_ERROR_FUNCTION_INDEX, JSFunction, reference_error_function) \ |
+ 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) \ |
V(PROMISE_STATUS_INDEX, Symbol, promise_status) \ |
V(PROMISE_VALUE_INDEX, Symbol, promise_value) \ |
V(PROMISE_CREATE_INDEX, JSFunction, promise_create) \ |
@@ -162,8 +167,11 @@ enum BindingFlags { |
V(PROMISE_CHAIN_INDEX, JSFunction, promise_chain) \ |
V(PROMISE_CATCH_INDEX, JSFunction, promise_catch) \ |
V(PROMISE_THEN_INDEX, JSFunction, promise_then) \ |
+ V(PROMISE_HAS_USER_DEFINED_REJECT_HANDLER_INDEX, JSFunction, \ |
+ promise_has_user_defined_reject_handler) \ |
V(TO_COMPLETE_PROPERTY_DESCRIPTOR_INDEX, JSFunction, \ |
to_complete_property_descriptor) \ |
+ V(JSON_SERIALIZE_ADAPTER_INDEX, JSFunction, json_serialize_adapter) \ |
V(DERIVED_HAS_TRAP_INDEX, JSFunction, derived_has_trap) \ |
V(DERIVED_GET_TRAP_INDEX, JSFunction, derived_get_trap) \ |
V(DERIVED_SET_TRAP_INDEX, JSFunction, derived_set_trap) \ |
@@ -323,144 +331,11 @@ class Context: public FixedArray { |
// scope info (block contexts), or the module instance (module contexts). |
EXTENSION_INDEX, |
GLOBAL_OBJECT_INDEX, |
- MIN_CONTEXT_SLOTS, |
- |
- // This slot holds the thrown value in catch contexts. |
- THROWN_OBJECT_INDEX = MIN_CONTEXT_SLOTS, |
// These slots are only in native contexts. |
- GLOBAL_PROXY_INDEX = MIN_CONTEXT_SLOTS, |
- SECURITY_TOKEN_INDEX, |
- SLOPPY_ARGUMENTS_MAP_INDEX, |
- FAST_ALIASED_ARGUMENTS_MAP_INDEX, |
- SLOW_ALIASED_ARGUMENTS_MAP_INDEX, |
- STRICT_ARGUMENTS_MAP_INDEX, |
- REGEXP_RESULT_MAP_INDEX, |
- SLOPPY_FUNCTION_MAP_INDEX, |
- SLOPPY_FUNCTION_WITH_READONLY_PROTOTYPE_MAP_INDEX, |
- STRICT_FUNCTION_MAP_INDEX, |
- STRONG_FUNCTION_MAP_INDEX, |
- SLOPPY_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, |
- STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, |
- STRONG_CONSTRUCTOR_MAP_INDEX, |
- BOUND_FUNCTION_MAP_INDEX, |
- INITIAL_OBJECT_PROTOTYPE_INDEX, |
- INITIAL_ARRAY_PROTOTYPE_INDEX, |
- BOOLEAN_FUNCTION_INDEX, |
- NUMBER_FUNCTION_INDEX, |
- STRING_FUNCTION_INDEX, |
- STRING_FUNCTION_PROTOTYPE_MAP_INDEX, |
- SYMBOL_FUNCTION_INDEX, |
- FLOAT32X4_FUNCTION_INDEX, |
- INT32X4_FUNCTION_INDEX, |
- BOOL32X4_FUNCTION_INDEX, |
- INT16X8_FUNCTION_INDEX, |
- BOOL16X8_FUNCTION_INDEX, |
- INT8X16_FUNCTION_INDEX, |
- BOOL8X16_FUNCTION_INDEX, |
- OBJECT_FUNCTION_INDEX, |
- JS_OBJECT_STRONG_MAP_INDEX, |
- INTERNAL_ARRAY_FUNCTION_INDEX, |
- ARRAY_FUNCTION_INDEX, |
- JS_ARRAY_MAPS_INDEX, |
- JS_ARRAY_STRONG_MAPS_INDEX, |
- DATE_FUNCTION_INDEX, |
- JSON_OBJECT_INDEX, |
- REGEXP_FUNCTION_INDEX, |
- CREATE_DATE_FUN_INDEX, |
- TO_NUMBER_FUN_INDEX, |
- TO_STRING_FUN_INDEX, |
- TO_DETAIL_STRING_FUN_INDEX, |
- TO_INTEGER_FUN_INDEX, |
- GLOBAL_EVAL_FUN_INDEX, |
- ARRAY_BUFFER_FUN_INDEX, |
- ARRAY_BUFFER_MAP_INDEX, |
- UINT8_ARRAY_FUN_INDEX, |
- INT8_ARRAY_FUN_INDEX, |
- UINT16_ARRAY_FUN_INDEX, |
- INT16_ARRAY_FUN_INDEX, |
- UINT32_ARRAY_FUN_INDEX, |
- INT32_ARRAY_FUN_INDEX, |
- FLOAT32_ARRAY_FUN_INDEX, |
- FLOAT64_ARRAY_FUN_INDEX, |
- UINT8_CLAMPED_ARRAY_FUN_INDEX, |
- INT8_ARRAY_EXTERNAL_MAP_INDEX, |
- UINT8_ARRAY_EXTERNAL_MAP_INDEX, |
- INT16_ARRAY_EXTERNAL_MAP_INDEX, |
- UINT16_ARRAY_EXTERNAL_MAP_INDEX, |
- INT32_ARRAY_EXTERNAL_MAP_INDEX, |
- UINT32_ARRAY_EXTERNAL_MAP_INDEX, |
- FLOAT32_ARRAY_EXTERNAL_MAP_INDEX, |
- FLOAT64_ARRAY_EXTERNAL_MAP_INDEX, |
- UINT8_CLAMPED_ARRAY_EXTERNAL_MAP_INDEX, |
- DATA_VIEW_FUN_INDEX, |
- SHARED_ARRAY_BUFFER_FUN_INDEX, |
- MESSAGE_LISTENERS_INDEX, |
- MAKE_MESSAGE_FUN_INDEX, |
- GET_STACK_TRACE_LINE_INDEX, |
- CONFIGURE_GLOBAL_INDEX, |
- FUNCTION_CACHE_INDEX, |
- NORMALIZED_MAP_CACHE_INDEX, |
- RUNTIME_CONTEXT_INDEX, |
- CALL_AS_FUNCTION_DELEGATE_INDEX, |
- CALL_AS_CONSTRUCTOR_DELEGATE_INDEX, |
- SCRIPT_FUNCTION_INDEX, |
- OPAQUE_REFERENCE_FUNCTION_INDEX, |
- CONTEXT_EXTENSION_FUNCTION_INDEX, |
- OUT_OF_MEMORY_INDEX, |
- EMBEDDER_DATA_INDEX, |
- ALLOW_CODE_GEN_FROM_STRINGS_INDEX, |
- ERROR_MESSAGE_FOR_CODE_GEN_FROM_STRINGS_INDEX, |
- RUN_MICROTASKS_INDEX, |
- ENQUEUE_MICROTASK_INDEX, |
- PROMISE_STATUS_INDEX, |
- PROMISE_VALUE_INDEX, |
- PROMISE_CREATE_INDEX, |
- PROMISE_RESOLVE_INDEX, |
- PROMISE_REJECT_INDEX, |
- PROMISE_CHAIN_INDEX, |
- PROMISE_CATCH_INDEX, |
- PROMISE_THEN_INDEX, |
- TO_COMPLETE_PROPERTY_DESCRIPTOR_INDEX, |
- DERIVED_HAS_TRAP_INDEX, |
- DERIVED_GET_TRAP_INDEX, |
- DERIVED_SET_TRAP_INDEX, |
- PROXY_ENUMERATE_INDEX, |
- OBSERVERS_NOTIFY_CHANGE_INDEX, |
- OBSERVERS_ENQUEUE_SPLICE_INDEX, |
- OBSERVERS_BEGIN_SPLICE_INDEX, |
- OBSERVERS_END_SPLICE_INDEX, |
- NATIVE_OBJECT_OBSERVE_INDEX, |
- NATIVE_OBJECT_GET_NOTIFIER_INDEX, |
- NATIVE_OBJECT_NOTIFIER_PERFORM_CHANGE, |
- SLOPPY_GENERATOR_FUNCTION_MAP_INDEX, |
- STRICT_GENERATOR_FUNCTION_MAP_INDEX, |
- STRONG_GENERATOR_FUNCTION_MAP_INDEX, |
- GENERATOR_OBJECT_PROTOTYPE_MAP_INDEX, |
- ITERATOR_RESULT_MAP_INDEX, |
- JS_MAP_FUN_INDEX, |
- JS_MAP_MAP_INDEX, |
- JS_SET_FUN_INDEX, |
- JS_SET_MAP_INDEX, |
- MAP_GET_METHOD_INDEX, |
- MAP_SET_METHOD_INDEX, |
- MAP_HAS_METHOD_INDEX, |
- MAP_DELETE_METHOD_INDEX, |
- SET_ADD_METHOD_INDEX, |
- SET_HAS_METHOD_INDEX, |
- SET_DELETE_METHOD_INDEX, |
- MAP_FROM_ARRAY_INDEX, |
- SET_FROM_ARRAY_INDEX, |
- MAP_ITERATOR_MAP_INDEX, |
- SET_ITERATOR_MAP_INDEX, |
- ARRAY_VALUES_ITERATOR_INDEX, |
- SCRIPT_CONTEXT_TABLE_INDEX, |
- MAP_CACHE_INDEX, |
- STRONG_MAP_CACHE_INDEX, |
- TO_LENGTH_FUN_INDEX, |
- NATIVES_UTILS_OBJECT_INDEX, |
- EXTRAS_EXPORTS_OBJECT_INDEX, |
- CODE_STUB_EXPORTS_OBJECT_INDEX, |
+#define NATIVE_CONTEXT_SLOT(index, type, name) index, |
+ NATIVE_CONTEXT_FIELDS(NATIVE_CONTEXT_SLOT) |
+#undef NATIVE_CONTEXT_SLOT |
// Properties from here are treated as weak references by the full GC. |
// Scavenge treats them as strong references. |
@@ -471,7 +346,11 @@ class Context: public FixedArray { |
// Total number of slots. |
NATIVE_CONTEXT_SLOTS, |
- FIRST_WEAK_SLOT = OPTIMIZED_FUNCTIONS_LIST |
+ FIRST_WEAK_SLOT = OPTIMIZED_FUNCTIONS_LIST, |
+ |
+ MIN_CONTEXT_SLOTS = GLOBAL_PROXY_INDEX, |
+ // This slot holds the thrown value in catch contexts. |
+ THROWN_OBJECT_INDEX = MIN_CONTEXT_SLOTS, |
}; |
// Direct slot access. |