Chromium Code Reviews| Index: src/contexts.h |
| diff --git a/src/contexts.h b/src/contexts.h |
| index d41191e6ac4cc085acd8710ee49f6182e1681c17..7c4ebc0c2b39da083e4690e248e8caf5d8033a1a 100644 |
| --- a/src/contexts.h |
| +++ b/src/contexts.h |
| @@ -90,6 +90,56 @@ enum BindingFlags { |
| V(TO_PRIMITIVE_INDEX, JSFunction, to_primitive) \ |
| V(TO_STRING_FUN_INDEX, JSFunction, to_string_fun) |
| + |
| +#define NATIVE_CONTEXT_JS_BUILTINS(V) \ |
| + V(ADD_BUILTIN_INDEX, JSFunction, add_builtin) \ |
| + V(ADD_STRONG_BUILTIN_INDEX, JSFunction, add_strong_builtin) \ |
| + V(APPLY_PREPARE_BUILTIN_INDEX, JSFunction, apply_prepare_builtin) \ |
| + V(BIT_AND_BUILTIN_INDEX, JSFunction, bit_and_builtin) \ |
| + V(BIT_AND_STRONG_BUILTIN_INDEX, JSFunction, bit_and_strong_builtin) \ |
| + V(BIT_OR_BUILTIN_INDEX, JSFunction, bit_or_builtin) \ |
| + V(BIT_OR_STRONG_BUILTIN_INDEX, JSFunction, bit_or_strong_builtin) \ |
| + V(BIT_XOR_BUILTIN_INDEX, JSFunction, bit_xor_builtin) \ |
| + V(BIT_XOR_STRONG_BUILTIN_INDEX, JSFunction, bit_xor_strong_builtin) \ |
| + V(CALL_FUNCTION_PROXY_AS_CONSTRUCTOR_BUILTIN_INDEX, JSFunction, \ |
| + call_function_proxy_as_constructor_builtin) \ |
| + V(CALL_FUNCTION_PROXY_BUILTIN_INDEX, JSFunction, \ |
| + call_function_proxy_builtin) \ |
| + V(CALL_NON_FUNCTION_AS_CONSTRUCTOR_BUILTIN_INDEX, JSFunction, \ |
| + call_non_function_as_constructor_builtin) \ |
| + V(CALL_NON_FUNCTION_BUILTIN_INDEX, JSFunction, call_non_function_builtin) \ |
| + V(COMPARE_BUILTIN_INDEX, JSFunction, compare_builtin) \ |
| + V(COMPARE_STRONG_BUILTIN_INDEX, JSFunction, compare_strong_builtin) \ |
| + V(CONCAT_ITERABLE_TO_ARRAY_BUILTIN_INDEX, JSFunction, \ |
| + concat_iterable_to_array_builtin) \ |
| + V(DIV_BUILTIN_INDEX, JSFunction, div_builtin) \ |
| + V(DIV_STRONG_BUILTIN_INDEX, JSFunction, div_strong_builtin) \ |
| + V(EQUALS_BUILTIN_INDEX, JSFunction, equals_builtin) \ |
| + V(IN_BUILTIN_INDEX, JSFunction, in_builtin) \ |
| + V(MOD_BUILTIN_INDEX, JSFunction, mod_builtin) \ |
| + V(MOD_STRONG_BUILTIN_INDEX, JSFunction, mod_strong_builtin) \ |
| + V(MUL_BUILTIN_INDEX, JSFunction, mul_builtin) \ |
| + V(MUL_STRONG_BUILTIN_INDEX, JSFunction, mul_strong_builtin) \ |
| + V(REFLECT_APPLY_PREPARE_BUILTIN_INDEX, JSFunction, \ |
| + reflect_apply_prepare_builtin) \ |
| + V(REFLECT_CONSTRUCT_PREPARE_BUILTIN_INDEX, JSFunction, \ |
| + reflect_construct_prepare_builtin) \ |
| + V(SAR_BUILTIN_INDEX, JSFunction, sar_builtin) \ |
| + V(SAR_STRONG_BUILTIN_INDEX, JSFunction, sar_strong_builtin) \ |
| + V(SHL_BUILTIN_INDEX, JSFunction, shl_builtin) \ |
| + V(SHL_STRONG_BUILTIN_INDEX, JSFunction, shl_strong_builtin) \ |
| + V(SHR_BUILTIN_INDEX, JSFunction, shr_builtin) \ |
| + V(SHR_STRONG_BUILTIN_INDEX, JSFunction, shr_strong_builtin) \ |
| + V(STACK_OVERFLOW_BUILTIN_INDEX, JSFunction, stack_overflow_builtin) \ |
| + V(STRING_ADD_LEFT_BUILTIN_INDEX, JSFunction, string_add_left_builtin) \ |
| + V(STRING_ADD_RIGHT_BUILTIN_INDEX, JSFunction, string_add_right_builtin) \ |
| + V(SUB_BUILTIN_INDEX, JSFunction, sub_builtin) \ |
| + V(SUB_STRONG_BUILTIN_INDEX, JSFunction, sub_strong_builtin) \ |
| + V(TO_NAME_BUILTIN_INDEX, JSFunction, to_name_builtin) \ |
| + V(TO_NUMBER_BUILTIN_INDEX, JSFunction, to_number_builtin) \ |
| + V(TO_STRING_BUILTIN_INDEX, JSFunction, to_string_builtin) |
| + |
| + |
| #define NATIVE_CONTEXT_IMPORTED_FIELDS(V) \ |
| V(ARRAY_CONCAT_INDEX, JSFunction, array_concat) \ |
| V(ARRAY_POP_INDEX, JSFunction, array_pop) \ |
| @@ -152,7 +202,8 @@ enum BindingFlags { |
| V(TO_DETAIL_STRING_FUN_INDEX, JSFunction, to_detail_string_fun) \ |
| V(TO_INTEGER_FUN_INDEX, JSFunction, to_integer_fun) \ |
| V(TYPE_ERROR_FUNCTION_INDEX, JSFunction, type_error_function) \ |
| - V(URI_ERROR_FUNCTION_INDEX, JSFunction, uri_error_function) |
| + V(URI_ERROR_FUNCTION_INDEX, JSFunction, uri_error_function) \ |
| + NATIVE_CONTEXT_JS_BUILTINS(V) |
|
Michael Starzinger
2015/08/26 14:16:42
Is there a reason we are adding this to the NATIVE
|
| #define NATIVE_CONTEXT_FIELDS(V) \ |
| V(GLOBAL_PROXY_INDEX, JSObject, global_proxy_object) \ |
| @@ -498,6 +549,9 @@ class Context: public FixedArray { |
| static int ImportedFieldIndexForName(Handle<String> name); |
| static int IntrinsicIndexForName(Handle<String> name); |
| + static bool IsJSBuiltin(Handle<Context> native_context, |
| + Handle<JSFunction> function); |
| + |
| #define NATIVE_CONTEXT_FIELD_ACCESSORS(index, type, name) \ |
| void set_##name(type* value) { \ |
| DCHECK(IsNativeContext()); \ |