OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #include "src/bootstrapper.h" | 5 #include "src/bootstrapper.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/api-natives.h" | 8 #include "src/api-natives.h" |
9 #include "src/base/ieee754.h" | 9 #include "src/base/ieee754.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
696 factory()->to_string_tag_symbol(), | 696 factory()->to_string_tag_symbol(), |
697 factory()->NewStringFromAsciiChecked("Generator"), | 697 factory()->NewStringFromAsciiChecked("Generator"), |
698 static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY)); | 698 static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY)); |
699 SimpleInstallFunction(generator_object_prototype, "next", | 699 SimpleInstallFunction(generator_object_prototype, "next", |
700 Builtins::kGeneratorPrototypeNext, 1, true); | 700 Builtins::kGeneratorPrototypeNext, 1, true); |
701 SimpleInstallFunction(generator_object_prototype, "return", | 701 SimpleInstallFunction(generator_object_prototype, "return", |
702 Builtins::kGeneratorPrototypeReturn, 1, true); | 702 Builtins::kGeneratorPrototypeReturn, 1, true); |
703 SimpleInstallFunction(generator_object_prototype, "throw", | 703 SimpleInstallFunction(generator_object_prototype, "throw", |
704 Builtins::kGeneratorPrototypeThrow, 1, true); | 704 Builtins::kGeneratorPrototypeThrow, 1, true); |
705 | 705 |
| 706 // Internal version of generator_prototype_next, flagged as non-native. |
| 707 Handle<JSFunction> generator_next_internal = |
| 708 SimpleCreateFunction(isolate(), factory()->next_string(), |
| 709 Builtins::kGeneratorPrototypeNext, 1, true); |
| 710 native_context()->set_generator_next_internal(*generator_next_internal); |
| 711 |
706 // Create maps for generator functions and their prototypes. Store those | 712 // Create maps for generator functions and their prototypes. Store those |
707 // maps in the native context. The "prototype" property descriptor is | 713 // maps in the native context. The "prototype" property descriptor is |
708 // writable, non-enumerable, and non-configurable (as per ES6 draft | 714 // writable, non-enumerable, and non-configurable (as per ES6 draft |
709 // 04-14-15, section 25.2.4.3). | 715 // 04-14-15, section 25.2.4.3). |
710 Handle<Map> strict_function_map(strict_function_map_writable_prototype_); | 716 Handle<Map> strict_function_map(strict_function_map_writable_prototype_); |
711 // Generator functions do not have "caller" or "arguments" accessors. | 717 // Generator functions do not have "caller" or "arguments" accessors. |
712 Handle<Map> sloppy_generator_function_map = | 718 Handle<Map> sloppy_generator_function_map = |
713 Map::Copy(strict_function_map, "SloppyGeneratorFunction"); | 719 Map::Copy(strict_function_map, "SloppyGeneratorFunction"); |
714 sloppy_generator_function_map->set_is_constructor(false); | 720 sloppy_generator_function_map->set_is_constructor(false); |
715 Map::SetPrototype(sloppy_generator_function_map, | 721 Map::SetPrototype(sloppy_generator_function_map, |
(...skipping 3469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4185 } | 4191 } |
4186 | 4192 |
4187 | 4193 |
4188 // Called when the top-level V8 mutex is destroyed. | 4194 // Called when the top-level V8 mutex is destroyed. |
4189 void Bootstrapper::FreeThreadResources() { | 4195 void Bootstrapper::FreeThreadResources() { |
4190 DCHECK(!IsActive()); | 4196 DCHECK(!IsActive()); |
4191 } | 4197 } |
4192 | 4198 |
4193 } // namespace internal | 4199 } // namespace internal |
4194 } // namespace v8 | 4200 } // namespace v8 |
OLD | NEW |