Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(277)

Side by Side Diff: src/contexts.h

Issue 185653004: Experimental parser: merge to r19637 (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/parser
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/compiler.cc ('k') | src/conversions-inl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 V(GLOBAL_EVAL_FUN_INDEX, JSFunction, global_eval_fun) \ 124 V(GLOBAL_EVAL_FUN_INDEX, JSFunction, global_eval_fun) \
125 V(INSTANTIATE_FUN_INDEX, JSFunction, instantiate_fun) \ 125 V(INSTANTIATE_FUN_INDEX, JSFunction, instantiate_fun) \
126 V(CONFIGURE_INSTANCE_FUN_INDEX, JSFunction, configure_instance_fun) \ 126 V(CONFIGURE_INSTANCE_FUN_INDEX, JSFunction, configure_instance_fun) \
127 V(ARRAY_BUFFER_FUN_INDEX, JSFunction, array_buffer_fun) \ 127 V(ARRAY_BUFFER_FUN_INDEX, JSFunction, array_buffer_fun) \
128 V(UINT8_ARRAY_FUN_INDEX, JSFunction, uint8_array_fun) \ 128 V(UINT8_ARRAY_FUN_INDEX, JSFunction, uint8_array_fun) \
129 V(INT8_ARRAY_FUN_INDEX, JSFunction, int8_array_fun) \ 129 V(INT8_ARRAY_FUN_INDEX, JSFunction, int8_array_fun) \
130 V(UINT16_ARRAY_FUN_INDEX, JSFunction, uint16_array_fun) \ 130 V(UINT16_ARRAY_FUN_INDEX, JSFunction, uint16_array_fun) \
131 V(INT16_ARRAY_FUN_INDEX, JSFunction, int16_array_fun) \ 131 V(INT16_ARRAY_FUN_INDEX, JSFunction, int16_array_fun) \
132 V(UINT32_ARRAY_FUN_INDEX, JSFunction, uint32_array_fun) \ 132 V(UINT32_ARRAY_FUN_INDEX, JSFunction, uint32_array_fun) \
133 V(INT32_ARRAY_FUN_INDEX, JSFunction, int32_array_fun) \ 133 V(INT32_ARRAY_FUN_INDEX, JSFunction, int32_array_fun) \
134 V(FLOAT_ARRAY_FUN_INDEX, JSFunction, float_array_fun) \ 134 V(FLOAT32_ARRAY_FUN_INDEX, JSFunction, float32_array_fun) \
135 V(DOUBLE_ARRAY_FUN_INDEX, JSFunction, double_array_fun) \ 135 V(FLOAT64_ARRAY_FUN_INDEX, JSFunction, float64_array_fun) \
136 V(UINT8C_ARRAY_FUN_INDEX, JSFunction, uint8c_array_fun) \ 136 V(UINT8_CLAMPED_ARRAY_FUN_INDEX, JSFunction, uint8_clamped_array_fun) \
137 V(DATA_VIEW_FUN_INDEX, JSFunction, data_view_fun) \ 137 V(DATA_VIEW_FUN_INDEX, JSFunction, data_view_fun) \
138 V(FUNCTION_MAP_INDEX, Map, function_map) \ 138 V(FUNCTION_MAP_INDEX, Map, function_map) \
139 V(STRICT_MODE_FUNCTION_MAP_INDEX, Map, strict_mode_function_map) \ 139 V(STRICT_MODE_FUNCTION_MAP_INDEX, Map, strict_mode_function_map) \
140 V(FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, function_without_prototype_map) \ 140 V(FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, function_without_prototype_map) \
141 V(STRICT_MODE_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, \ 141 V(STRICT_MODE_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, \
142 strict_mode_function_without_prototype_map) \ 142 strict_mode_function_without_prototype_map) \
143 V(REGEXP_RESULT_MAP_INDEX, Map, regexp_result_map)\ 143 V(REGEXP_RESULT_MAP_INDEX, Map, regexp_result_map)\
144 V(ARGUMENTS_BOILERPLATE_INDEX, JSObject, arguments_boilerplate) \ 144 V(ARGUMENTS_BOILERPLATE_INDEX, JSObject, arguments_boilerplate) \
145 V(ALIASED_ARGUMENTS_BOILERPLATE_INDEX, JSObject, \ 145 V(ALIASED_ARGUMENTS_BOILERPLATE_INDEX, JSObject, \
146 aliased_arguments_boilerplate) \ 146 aliased_arguments_boilerplate) \
(...skipping 13 matching lines...) Expand all
160 V(SCRIPT_FUNCTION_INDEX, JSFunction, script_function) \ 160 V(SCRIPT_FUNCTION_INDEX, JSFunction, script_function) \
161 V(OPAQUE_REFERENCE_FUNCTION_INDEX, JSFunction, opaque_reference_function) \ 161 V(OPAQUE_REFERENCE_FUNCTION_INDEX, JSFunction, opaque_reference_function) \
162 V(CONTEXT_EXTENSION_FUNCTION_INDEX, JSFunction, context_extension_function) \ 162 V(CONTEXT_EXTENSION_FUNCTION_INDEX, JSFunction, context_extension_function) \
163 V(OUT_OF_MEMORY_INDEX, Object, out_of_memory) \ 163 V(OUT_OF_MEMORY_INDEX, Object, out_of_memory) \
164 V(MAP_CACHE_INDEX, Object, map_cache) \ 164 V(MAP_CACHE_INDEX, Object, map_cache) \
165 V(EMBEDDER_DATA_INDEX, FixedArray, embedder_data) \ 165 V(EMBEDDER_DATA_INDEX, FixedArray, embedder_data) \
166 V(ALLOW_CODE_GEN_FROM_STRINGS_INDEX, Object, allow_code_gen_from_strings) \ 166 V(ALLOW_CODE_GEN_FROM_STRINGS_INDEX, Object, allow_code_gen_from_strings) \
167 V(ERROR_MESSAGE_FOR_CODE_GEN_FROM_STRINGS_INDEX, Object, \ 167 V(ERROR_MESSAGE_FOR_CODE_GEN_FROM_STRINGS_INDEX, Object, \
168 error_message_for_code_gen_from_strings) \ 168 error_message_for_code_gen_from_strings) \
169 V(RUN_MICROTASKS_INDEX, JSFunction, run_microtasks) \ 169 V(RUN_MICROTASKS_INDEX, JSFunction, run_microtasks) \
170 V(ENQUEUE_EXTERNAL_MICROTASK_INDEX, JSFunction, enqueue_external_microtask) \
170 V(TO_COMPLETE_PROPERTY_DESCRIPTOR_INDEX, JSFunction, \ 171 V(TO_COMPLETE_PROPERTY_DESCRIPTOR_INDEX, JSFunction, \
171 to_complete_property_descriptor) \ 172 to_complete_property_descriptor) \
172 V(DERIVED_HAS_TRAP_INDEX, JSFunction, derived_has_trap) \ 173 V(DERIVED_HAS_TRAP_INDEX, JSFunction, derived_has_trap) \
173 V(DERIVED_GET_TRAP_INDEX, JSFunction, derived_get_trap) \ 174 V(DERIVED_GET_TRAP_INDEX, JSFunction, derived_get_trap) \
174 V(DERIVED_SET_TRAP_INDEX, JSFunction, derived_set_trap) \ 175 V(DERIVED_SET_TRAP_INDEX, JSFunction, derived_set_trap) \
175 V(PROXY_ENUMERATE_INDEX, JSFunction, proxy_enumerate) \ 176 V(PROXY_ENUMERATE_INDEX, JSFunction, proxy_enumerate) \
176 V(OBSERVERS_NOTIFY_CHANGE_INDEX, JSFunction, observers_notify_change) \ 177 V(OBSERVERS_NOTIFY_CHANGE_INDEX, JSFunction, observers_notify_change) \
177 V(OBSERVERS_ENQUEUE_SPLICE_INDEX, JSFunction, observers_enqueue_splice) \ 178 V(OBSERVERS_ENQUEUE_SPLICE_INDEX, JSFunction, observers_enqueue_splice) \
178 V(OBSERVERS_BEGIN_SPLICE_INDEX, JSFunction, \ 179 V(OBSERVERS_BEGIN_SPLICE_INDEX, JSFunction, \
179 observers_begin_perform_splice) \ 180 observers_begin_perform_splice) \
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 // ScopeInfo. 219 // ScopeInfo.
219 // For module contexts, points back to the respective JSModule. 220 // For module contexts, points back to the respective JSModule.
220 // 221 //
221 // [ global_object ] A pointer to the global object. Provided for quick 222 // [ global_object ] A pointer to the global object. Provided for quick
222 // access to the global object from inside the code (since 223 // access to the global object from inside the code (since
223 // we always have a context pointer). 224 // we always have a context pointer).
224 // 225 //
225 // In addition, function contexts may have statically allocated context slots 226 // In addition, function contexts may have statically allocated context slots
226 // to store local variables/functions that are accessed from inner functions 227 // to store local variables/functions that are accessed from inner functions
227 // (via static context addresses) or through 'eval' (dynamic context lookups). 228 // (via static context addresses) or through 'eval' (dynamic context lookups).
228 // Finally, the native context contains additional slots for fast access to 229 // The native context contains additional slots for fast access to native
229 // native properties. 230 // properties.
231 //
232 // Finally, with Harmony scoping, the JSFunction representing a top level
233 // script will have the GlobalContext rather than a FunctionContext.
230 234
231 class Context: public FixedArray { 235 class Context: public FixedArray {
232 public: 236 public:
233 // Conversions. 237 // Conversions.
234 static Context* cast(Object* context) { 238 static Context* cast(Object* context) {
235 ASSERT(context->IsContext()); 239 ASSERT(context->IsContext());
236 return reinterpret_cast<Context*>(context); 240 return reinterpret_cast<Context*>(context);
237 } 241 }
238 242
239 // The default context slot layout; indices are FixedArray slot indices. 243 // The default context slot layout; indices are FixedArray slot indices.
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 GLOBAL_EVAL_FUN_INDEX, 293 GLOBAL_EVAL_FUN_INDEX,
290 INSTANTIATE_FUN_INDEX, 294 INSTANTIATE_FUN_INDEX,
291 CONFIGURE_INSTANCE_FUN_INDEX, 295 CONFIGURE_INSTANCE_FUN_INDEX,
292 ARRAY_BUFFER_FUN_INDEX, 296 ARRAY_BUFFER_FUN_INDEX,
293 UINT8_ARRAY_FUN_INDEX, 297 UINT8_ARRAY_FUN_INDEX,
294 INT8_ARRAY_FUN_INDEX, 298 INT8_ARRAY_FUN_INDEX,
295 UINT16_ARRAY_FUN_INDEX, 299 UINT16_ARRAY_FUN_INDEX,
296 INT16_ARRAY_FUN_INDEX, 300 INT16_ARRAY_FUN_INDEX,
297 UINT32_ARRAY_FUN_INDEX, 301 UINT32_ARRAY_FUN_INDEX,
298 INT32_ARRAY_FUN_INDEX, 302 INT32_ARRAY_FUN_INDEX,
299 FLOAT_ARRAY_FUN_INDEX, 303 FLOAT32_ARRAY_FUN_INDEX,
300 DOUBLE_ARRAY_FUN_INDEX, 304 FLOAT64_ARRAY_FUN_INDEX,
301 UINT8C_ARRAY_FUN_INDEX, 305 UINT8_CLAMPED_ARRAY_FUN_INDEX,
302 DATA_VIEW_FUN_INDEX, 306 DATA_VIEW_FUN_INDEX,
303 MESSAGE_LISTENERS_INDEX, 307 MESSAGE_LISTENERS_INDEX,
304 MAKE_MESSAGE_FUN_INDEX, 308 MAKE_MESSAGE_FUN_INDEX,
305 GET_STACK_TRACE_LINE_INDEX, 309 GET_STACK_TRACE_LINE_INDEX,
306 CONFIGURE_GLOBAL_INDEX, 310 CONFIGURE_GLOBAL_INDEX,
307 FUNCTION_CACHE_INDEX, 311 FUNCTION_CACHE_INDEX,
308 JSFUNCTION_RESULT_CACHES_INDEX, 312 JSFUNCTION_RESULT_CACHES_INDEX,
309 NORMALIZED_MAP_CACHE_INDEX, 313 NORMALIZED_MAP_CACHE_INDEX,
310 RUNTIME_CONTEXT_INDEX, 314 RUNTIME_CONTEXT_INDEX,
311 CALL_AS_FUNCTION_DELEGATE_INDEX, 315 CALL_AS_FUNCTION_DELEGATE_INDEX,
312 CALL_AS_CONSTRUCTOR_DELEGATE_INDEX, 316 CALL_AS_CONSTRUCTOR_DELEGATE_INDEX,
313 SCRIPT_FUNCTION_INDEX, 317 SCRIPT_FUNCTION_INDEX,
314 OPAQUE_REFERENCE_FUNCTION_INDEX, 318 OPAQUE_REFERENCE_FUNCTION_INDEX,
315 CONTEXT_EXTENSION_FUNCTION_INDEX, 319 CONTEXT_EXTENSION_FUNCTION_INDEX,
316 OUT_OF_MEMORY_INDEX, 320 OUT_OF_MEMORY_INDEX,
317 EMBEDDER_DATA_INDEX, 321 EMBEDDER_DATA_INDEX,
318 ALLOW_CODE_GEN_FROM_STRINGS_INDEX, 322 ALLOW_CODE_GEN_FROM_STRINGS_INDEX,
319 ERROR_MESSAGE_FOR_CODE_GEN_FROM_STRINGS_INDEX, 323 ERROR_MESSAGE_FOR_CODE_GEN_FROM_STRINGS_INDEX,
320 RUN_MICROTASKS_INDEX, 324 RUN_MICROTASKS_INDEX,
325 ENQUEUE_EXTERNAL_MICROTASK_INDEX,
321 TO_COMPLETE_PROPERTY_DESCRIPTOR_INDEX, 326 TO_COMPLETE_PROPERTY_DESCRIPTOR_INDEX,
322 DERIVED_HAS_TRAP_INDEX, 327 DERIVED_HAS_TRAP_INDEX,
323 DERIVED_GET_TRAP_INDEX, 328 DERIVED_GET_TRAP_INDEX,
324 DERIVED_SET_TRAP_INDEX, 329 DERIVED_SET_TRAP_INDEX,
325 PROXY_ENUMERATE_INDEX, 330 PROXY_ENUMERATE_INDEX,
326 OBSERVERS_NOTIFY_CHANGE_INDEX, 331 OBSERVERS_NOTIFY_CHANGE_INDEX,
327 OBSERVERS_ENQUEUE_SPLICE_INDEX, 332 OBSERVERS_ENQUEUE_SPLICE_INDEX,
328 OBSERVERS_BEGIN_SPLICE_INDEX, 333 OBSERVERS_BEGIN_SPLICE_INDEX,
329 OBSERVERS_END_SPLICE_INDEX, 334 OBSERVERS_END_SPLICE_INDEX,
330 GENERATOR_FUNCTION_MAP_INDEX, 335 GENERATOR_FUNCTION_MAP_INDEX,
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 static bool IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object); 524 static bool IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object);
520 #endif 525 #endif
521 526
522 STATIC_CHECK(kHeaderSize == Internals::kContextHeaderSize); 527 STATIC_CHECK(kHeaderSize == Internals::kContextHeaderSize);
523 STATIC_CHECK(EMBEDDER_DATA_INDEX == Internals::kContextEmbedderDataIndex); 528 STATIC_CHECK(EMBEDDER_DATA_INDEX == Internals::kContextEmbedderDataIndex);
524 }; 529 };
525 530
526 } } // namespace v8::internal 531 } } // namespace v8::internal
527 532
528 #endif // V8_CONTEXTS_H_ 533 #endif // V8_CONTEXTS_H_
OLDNEW
« no previous file with comments | « src/compiler.cc ('k') | src/conversions-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698