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

Side by Side Diff: src/contexts.h

Issue 1027283004: [es6] do not add caller/arguments to ES6 function definitions (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Remove unneeded bits Created 5 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_CONTEXTS_H_ 5 #ifndef V8_CONTEXTS_H_
6 #define V8_CONTEXTS_H_ 6 #define V8_CONTEXTS_H_
7 7
8 #include "src/heap/heap.h" 8 #include "src/heap/heap.h"
9 #include "src/objects.h" 9 #include "src/objects.h"
10 10
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 V(INT16_ARRAY_EXTERNAL_MAP_INDEX, Map, int16_array_external_map) \ 115 V(INT16_ARRAY_EXTERNAL_MAP_INDEX, Map, int16_array_external_map) \
116 V(UINT16_ARRAY_EXTERNAL_MAP_INDEX, Map, uint16_array_external_map) \ 116 V(UINT16_ARRAY_EXTERNAL_MAP_INDEX, Map, uint16_array_external_map) \
117 V(INT32_ARRAY_EXTERNAL_MAP_INDEX, Map, int32_array_external_map) \ 117 V(INT32_ARRAY_EXTERNAL_MAP_INDEX, Map, int32_array_external_map) \
118 V(UINT32_ARRAY_EXTERNAL_MAP_INDEX, Map, uint32_array_external_map) \ 118 V(UINT32_ARRAY_EXTERNAL_MAP_INDEX, Map, uint32_array_external_map) \
119 V(FLOAT32_ARRAY_EXTERNAL_MAP_INDEX, Map, float32_array_external_map) \ 119 V(FLOAT32_ARRAY_EXTERNAL_MAP_INDEX, Map, float32_array_external_map) \
120 V(FLOAT64_ARRAY_EXTERNAL_MAP_INDEX, Map, float64_array_external_map) \ 120 V(FLOAT64_ARRAY_EXTERNAL_MAP_INDEX, Map, float64_array_external_map) \
121 V(UINT8_CLAMPED_ARRAY_EXTERNAL_MAP_INDEX, Map, \ 121 V(UINT8_CLAMPED_ARRAY_EXTERNAL_MAP_INDEX, Map, \
122 uint8_clamped_array_external_map) \ 122 uint8_clamped_array_external_map) \
123 V(DATA_VIEW_FUN_INDEX, JSFunction, data_view_fun) \ 123 V(DATA_VIEW_FUN_INDEX, JSFunction, data_view_fun) \
124 V(SLOPPY_FUNCTION_MAP_INDEX, Map, sloppy_function_map) \ 124 V(SLOPPY_FUNCTION_MAP_INDEX, Map, sloppy_function_map) \
125 V(PLAIN_FUNCTION_MAP_INDEX, Map, plain_function_map) \
125 V(SLOPPY_FUNCTION_WITH_READONLY_PROTOTYPE_MAP_INDEX, Map, \ 126 V(SLOPPY_FUNCTION_WITH_READONLY_PROTOTYPE_MAP_INDEX, Map, \
126 sloppy_function_with_readonly_prototype_map) \ 127 sloppy_function_with_readonly_prototype_map) \
127 V(STRICT_FUNCTION_MAP_INDEX, Map, strict_function_map) \ 128 V(STRICT_FUNCTION_MAP_INDEX, Map, strict_function_map) \
128 V(STRONG_FUNCTION_MAP_INDEX, Map, strong_function_map) \ 129 V(STRONG_FUNCTION_MAP_INDEX, Map, strong_function_map) \
129 V(SLOPPY_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, \ 130 V(SLOPPY_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, \
130 sloppy_function_without_prototype_map) \ 131 sloppy_function_without_prototype_map) \
132 V(PLAIN_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, \
133 plain_function_without_prototype_map) \
131 V(STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, \ 134 V(STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map, \
132 strict_function_without_prototype_map) \ 135 strict_function_without_prototype_map) \
133 V(STRONG_CONSTRUCTOR_MAP_INDEX, Map, strong_constructor_map) \ 136 V(STRONG_CONSTRUCTOR_MAP_INDEX, Map, strong_constructor_map) \
134 V(BOUND_FUNCTION_MAP_INDEX, Map, bound_function_map) \ 137 V(BOUND_FUNCTION_MAP_INDEX, Map, bound_function_map) \
135 V(REGEXP_RESULT_MAP_INDEX, Map, regexp_result_map) \ 138 V(REGEXP_RESULT_MAP_INDEX, Map, regexp_result_map) \
136 V(SLOPPY_ARGUMENTS_MAP_INDEX, Map, sloppy_arguments_map) \ 139 V(SLOPPY_ARGUMENTS_MAP_INDEX, Map, sloppy_arguments_map) \
137 V(ALIASED_ARGUMENTS_MAP_INDEX, Map, aliased_arguments_map) \ 140 V(ALIASED_ARGUMENTS_MAP_INDEX, Map, aliased_arguments_map) \
138 V(STRICT_ARGUMENTS_MAP_INDEX, Map, strict_arguments_map) \ 141 V(STRICT_ARGUMENTS_MAP_INDEX, Map, strict_arguments_map) \
139 V(MESSAGE_LISTENERS_INDEX, JSObject, message_listeners) \ 142 V(MESSAGE_LISTENERS_INDEX, JSObject, message_listeners) \
140 V(MAKE_MESSAGE_FUN_INDEX, JSFunction, make_message_fun) \ 143 V(MAKE_MESSAGE_FUN_INDEX, JSFunction, make_message_fun) \
(...skipping 28 matching lines...) Expand all
169 V(DERIVED_SET_TRAP_INDEX, JSFunction, derived_set_trap) \ 172 V(DERIVED_SET_TRAP_INDEX, JSFunction, derived_set_trap) \
170 V(PROXY_ENUMERATE_INDEX, JSFunction, proxy_enumerate) \ 173 V(PROXY_ENUMERATE_INDEX, JSFunction, proxy_enumerate) \
171 V(OBSERVERS_NOTIFY_CHANGE_INDEX, JSFunction, observers_notify_change) \ 174 V(OBSERVERS_NOTIFY_CHANGE_INDEX, JSFunction, observers_notify_change) \
172 V(OBSERVERS_ENQUEUE_SPLICE_INDEX, JSFunction, observers_enqueue_splice) \ 175 V(OBSERVERS_ENQUEUE_SPLICE_INDEX, JSFunction, observers_enqueue_splice) \
173 V(OBSERVERS_BEGIN_SPLICE_INDEX, JSFunction, observers_begin_perform_splice) \ 176 V(OBSERVERS_BEGIN_SPLICE_INDEX, JSFunction, observers_begin_perform_splice) \
174 V(OBSERVERS_END_SPLICE_INDEX, JSFunction, observers_end_perform_splice) \ 177 V(OBSERVERS_END_SPLICE_INDEX, JSFunction, observers_end_perform_splice) \
175 V(NATIVE_OBJECT_OBSERVE_INDEX, JSFunction, native_object_observe) \ 178 V(NATIVE_OBJECT_OBSERVE_INDEX, JSFunction, native_object_observe) \
176 V(NATIVE_OBJECT_GET_NOTIFIER_INDEX, JSFunction, native_object_get_notifier) \ 179 V(NATIVE_OBJECT_GET_NOTIFIER_INDEX, JSFunction, native_object_get_notifier) \
177 V(NATIVE_OBJECT_NOTIFIER_PERFORM_CHANGE, JSFunction, \ 180 V(NATIVE_OBJECT_NOTIFIER_PERFORM_CHANGE, JSFunction, \
178 native_object_notifier_perform_change) \ 181 native_object_notifier_perform_change) \
179 V(SLOPPY_GENERATOR_FUNCTION_MAP_INDEX, Map, sloppy_generator_function_map) \ 182 V(GENERATOR_FUNCTION_MAP_INDEX, Map, generator_function_map) \
180 V(STRICT_GENERATOR_FUNCTION_MAP_INDEX, Map, strict_generator_function_map) \
181 V(STRONG_GENERATOR_FUNCTION_MAP_INDEX, Map, strong_generator_function_map) \ 183 V(STRONG_GENERATOR_FUNCTION_MAP_INDEX, Map, strong_generator_function_map) \
182 V(GENERATOR_OBJECT_PROTOTYPE_MAP_INDEX, Map, generator_object_prototype_map) \ 184 V(GENERATOR_OBJECT_PROTOTYPE_MAP_INDEX, Map, generator_object_prototype_map) \
183 V(ITERATOR_RESULT_MAP_INDEX, Map, iterator_result_map) \ 185 V(ITERATOR_RESULT_MAP_INDEX, Map, iterator_result_map) \
184 V(MAP_ITERATOR_MAP_INDEX, Map, map_iterator_map) \ 186 V(MAP_ITERATOR_MAP_INDEX, Map, map_iterator_map) \
185 V(SET_ITERATOR_MAP_INDEX, Map, set_iterator_map) \ 187 V(SET_ITERATOR_MAP_INDEX, Map, set_iterator_map) \
186 V(ARRAY_VALUES_ITERATOR_INDEX, JSFunction, array_values_iterator) \ 188 V(ARRAY_VALUES_ITERATOR_INDEX, JSFunction, array_values_iterator) \
187 V(SCRIPT_CONTEXT_TABLE_INDEX, ScriptContextTable, script_context_table) 189 V(SCRIPT_CONTEXT_TABLE_INDEX, ScriptContextTable, script_context_table)
188 190
189 191
190 // A table of all script contexts. Every loaded top-level script with top-level 192 // A table of all script contexts. Every loaded top-level script with top-level
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 THROWN_OBJECT_INDEX = MIN_CONTEXT_SLOTS, 315 THROWN_OBJECT_INDEX = MIN_CONTEXT_SLOTS,
314 316
315 // These slots are only in native contexts. 317 // These slots are only in native contexts.
316 GLOBAL_PROXY_INDEX = MIN_CONTEXT_SLOTS, 318 GLOBAL_PROXY_INDEX = MIN_CONTEXT_SLOTS,
317 SECURITY_TOKEN_INDEX, 319 SECURITY_TOKEN_INDEX,
318 SLOPPY_ARGUMENTS_MAP_INDEX, 320 SLOPPY_ARGUMENTS_MAP_INDEX,
319 ALIASED_ARGUMENTS_MAP_INDEX, 321 ALIASED_ARGUMENTS_MAP_INDEX,
320 STRICT_ARGUMENTS_MAP_INDEX, 322 STRICT_ARGUMENTS_MAP_INDEX,
321 REGEXP_RESULT_MAP_INDEX, 323 REGEXP_RESULT_MAP_INDEX,
322 SLOPPY_FUNCTION_MAP_INDEX, 324 SLOPPY_FUNCTION_MAP_INDEX,
325 PLAIN_FUNCTION_MAP_INDEX,
323 SLOPPY_FUNCTION_WITH_READONLY_PROTOTYPE_MAP_INDEX, 326 SLOPPY_FUNCTION_WITH_READONLY_PROTOTYPE_MAP_INDEX,
324 STRICT_FUNCTION_MAP_INDEX, 327 STRICT_FUNCTION_MAP_INDEX,
325 STRONG_FUNCTION_MAP_INDEX, 328 STRONG_FUNCTION_MAP_INDEX,
326 SLOPPY_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, 329 SLOPPY_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX,
330 PLAIN_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX,
327 STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, 331 STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX,
328 STRONG_CONSTRUCTOR_MAP_INDEX, 332 STRONG_CONSTRUCTOR_MAP_INDEX,
329 BOUND_FUNCTION_MAP_INDEX, 333 BOUND_FUNCTION_MAP_INDEX,
330 INITIAL_OBJECT_PROTOTYPE_INDEX, 334 INITIAL_OBJECT_PROTOTYPE_INDEX,
331 INITIAL_ARRAY_PROTOTYPE_INDEX, 335 INITIAL_ARRAY_PROTOTYPE_INDEX,
332 BOOLEAN_FUNCTION_INDEX, 336 BOOLEAN_FUNCTION_INDEX,
333 NUMBER_FUNCTION_INDEX, 337 NUMBER_FUNCTION_INDEX,
334 STRING_FUNCTION_INDEX, 338 STRING_FUNCTION_INDEX,
335 STRING_FUNCTION_PROTOTYPE_MAP_INDEX, 339 STRING_FUNCTION_PROTOTYPE_MAP_INDEX,
336 SYMBOL_FUNCTION_INDEX, 340 SYMBOL_FUNCTION_INDEX,
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 DERIVED_GET_TRAP_INDEX, 406 DERIVED_GET_TRAP_INDEX,
403 DERIVED_SET_TRAP_INDEX, 407 DERIVED_SET_TRAP_INDEX,
404 PROXY_ENUMERATE_INDEX, 408 PROXY_ENUMERATE_INDEX,
405 OBSERVERS_NOTIFY_CHANGE_INDEX, 409 OBSERVERS_NOTIFY_CHANGE_INDEX,
406 OBSERVERS_ENQUEUE_SPLICE_INDEX, 410 OBSERVERS_ENQUEUE_SPLICE_INDEX,
407 OBSERVERS_BEGIN_SPLICE_INDEX, 411 OBSERVERS_BEGIN_SPLICE_INDEX,
408 OBSERVERS_END_SPLICE_INDEX, 412 OBSERVERS_END_SPLICE_INDEX,
409 NATIVE_OBJECT_OBSERVE_INDEX, 413 NATIVE_OBJECT_OBSERVE_INDEX,
410 NATIVE_OBJECT_GET_NOTIFIER_INDEX, 414 NATIVE_OBJECT_GET_NOTIFIER_INDEX,
411 NATIVE_OBJECT_NOTIFIER_PERFORM_CHANGE, 415 NATIVE_OBJECT_NOTIFIER_PERFORM_CHANGE,
412 SLOPPY_GENERATOR_FUNCTION_MAP_INDEX, 416 GENERATOR_FUNCTION_MAP_INDEX,
413 STRICT_GENERATOR_FUNCTION_MAP_INDEX,
414 STRONG_GENERATOR_FUNCTION_MAP_INDEX, 417 STRONG_GENERATOR_FUNCTION_MAP_INDEX,
415 GENERATOR_OBJECT_PROTOTYPE_MAP_INDEX, 418 GENERATOR_OBJECT_PROTOTYPE_MAP_INDEX,
416 ITERATOR_RESULT_MAP_INDEX, 419 ITERATOR_RESULT_MAP_INDEX,
417 MAP_ITERATOR_MAP_INDEX, 420 MAP_ITERATOR_MAP_INDEX,
418 SET_ITERATOR_MAP_INDEX, 421 SET_ITERATOR_MAP_INDEX,
419 ARRAY_VALUES_ITERATOR_INDEX, 422 ARRAY_VALUES_ITERATOR_INDEX,
420 SCRIPT_CONTEXT_TABLE_INDEX, 423 SCRIPT_CONTEXT_TABLE_INDEX,
421 MAP_CACHE_INDEX, 424 MAP_CACHE_INDEX,
422 TO_LENGTH_FUN_INDEX, 425 TO_LENGTH_FUN_INDEX,
423 426
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 PropertyAttributes* attributes, 572 PropertyAttributes* attributes,
570 BindingFlags* binding_flags); 573 BindingFlags* binding_flags);
571 574
572 // Code generation support. 575 // Code generation support.
573 static int SlotOffset(int index) { 576 static int SlotOffset(int index) {
574 return kHeaderSize + index * kPointerSize - kHeapObjectTag; 577 return kHeaderSize + index * kPointerSize - kHeapObjectTag;
575 } 578 }
576 579
577 static int FunctionMapIndex(LanguageMode language_mode, FunctionKind kind) { 580 static int FunctionMapIndex(LanguageMode language_mode, FunctionKind kind) {
578 if (IsGeneratorFunction(kind)) { 581 if (IsGeneratorFunction(kind)) {
579 return is_strong(language_mode) ? STRONG_GENERATOR_FUNCTION_MAP_INDEX : 582 return is_strong(language_mode) ? STRONG_GENERATOR_FUNCTION_MAP_INDEX
580 is_strict(language_mode) ? STRICT_GENERATOR_FUNCTION_MAP_INDEX 583 : GENERATOR_FUNCTION_MAP_INDEX;
581 : SLOPPY_GENERATOR_FUNCTION_MAP_INDEX;
582 } 584 }
583 585
584 if (IsConstructor(kind)) { 586 if (IsConstructor(kind)) {
585 return is_strong(language_mode) ? STRONG_CONSTRUCTOR_MAP_INDEX : 587 return is_strong(language_mode) ? STRONG_CONSTRUCTOR_MAP_INDEX
586 is_strict(language_mode) ? STRICT_FUNCTION_MAP_INDEX 588 : PLAIN_FUNCTION_MAP_INDEX;
587 : SLOPPY_FUNCTION_MAP_INDEX;
588 } 589 }
589 590
590 if (IsArrowFunction(kind) || IsConciseMethod(kind) || 591 if (IsArrowFunction(kind) || IsConciseMethod(kind)) {
591 IsAccessorFunction(kind)) { 592 return is_strong(language_mode)
593 ? STRONG_FUNCTION_MAP_INDEX
594 : PLAIN_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX;
595 }
596
597 if (IsAccessorFunction(kind)) {
592 return is_strong(language_mode) ? STRONG_FUNCTION_MAP_INDEX : 598 return is_strong(language_mode) ? STRONG_FUNCTION_MAP_INDEX :
593 is_strict(language_mode) ? 599 is_strict(language_mode) ?
594 STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX : 600 STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX :
595 SLOPPY_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX; 601 SLOPPY_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX;
596 } 602 }
597 603
598 return is_strong(language_mode) ? STRONG_FUNCTION_MAP_INDEX : 604 return is_strong(language_mode) ? STRONG_FUNCTION_MAP_INDEX :
599 is_strict(language_mode) ? STRICT_FUNCTION_MAP_INDEX 605 is_strict(language_mode) ? STRICT_FUNCTION_MAP_INDEX
600 : SLOPPY_FUNCTION_MAP_INDEX; 606 : SLOPPY_FUNCTION_MAP_INDEX;
601 } 607 }
(...skipping 19 matching lines...) Expand all
621 static bool IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object); 627 static bool IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object);
622 #endif 628 #endif
623 629
624 STATIC_ASSERT(kHeaderSize == Internals::kContextHeaderSize); 630 STATIC_ASSERT(kHeaderSize == Internals::kContextHeaderSize);
625 STATIC_ASSERT(EMBEDDER_DATA_INDEX == Internals::kContextEmbedderDataIndex); 631 STATIC_ASSERT(EMBEDDER_DATA_INDEX == Internals::kContextEmbedderDataIndex);
626 }; 632 };
627 633
628 } } // namespace v8::internal 634 } } // namespace v8::internal
629 635
630 #endif // V8_CONTEXTS_H_ 636 #endif // V8_CONTEXTS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698