| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 (function(global, utils) { | 5 (function(global, utils) { |
| 6 | 6 |
| 7 "use strict"; | 7 "use strict"; |
| 8 | 8 |
| 9 %CheckIsBootstrapping(); | 9 %CheckIsBootstrapping(); |
| 10 | 10 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 throw MakeTypeError(kGeneratorRunning); | 73 throw MakeTypeError(kGeneratorRunning); |
| 74 } | 74 } |
| 75 } | 75 } |
| 76 | 76 |
| 77 | 77 |
| 78 function GeneratorFunctionConstructor(arg1) { // length == 1 | 78 function GeneratorFunctionConstructor(arg1) { // length == 1 |
| 79 var source = NewFunctionString(arguments, 'function*'); | 79 var source = NewFunctionString(arguments, 'function*'); |
| 80 var global_proxy = %GlobalProxy(GeneratorFunctionConstructor); | 80 var global_proxy = %GlobalProxy(GeneratorFunctionConstructor); |
| 81 // Compile the string in the constructor and not a helper so that errors | 81 // Compile the string in the constructor and not a helper so that errors |
| 82 // appear to come from here. | 82 // appear to come from here. |
| 83 var f = %CompileString(source, true); | 83 var f = %_CallFunction(global_proxy, %CompileString(source, true)); |
| 84 if (!IS_FUNCTION(f)) return f; | |
| 85 f = %_CallFunction(global_proxy, f); | |
| 86 %FunctionMarkNameShouldPrintAsAnonymous(f); | 84 %FunctionMarkNameShouldPrintAsAnonymous(f); |
| 87 return f; | 85 return f; |
| 88 } | 86 } |
| 89 | 87 |
| 90 // ---------------------------------------------------------------------------- | 88 // ---------------------------------------------------------------------------- |
| 91 | 89 |
| 92 // Both Runtime_GeneratorNext and Runtime_GeneratorThrow are supported by | 90 // Both Runtime_GeneratorNext and Runtime_GeneratorThrow are supported by |
| 93 // neither Crankshaft nor TurboFan, disable optimization of wrappers here. | 91 // neither Crankshaft nor TurboFan, disable optimization of wrappers here. |
| 94 %NeverOptimizeFunction(GeneratorObjectNext); | 92 %NeverOptimizeFunction(GeneratorObjectNext); |
| 95 %NeverOptimizeFunction(GeneratorObjectThrow); | 93 %NeverOptimizeFunction(GeneratorObjectThrow); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 107 toStringTagSymbol, "Generator", DONT_ENUM | READ_ONLY); | 105 toStringTagSymbol, "Generator", DONT_ENUM | READ_ONLY); |
| 108 %InternalSetPrototype(GeneratorFunctionPrototype, GlobalFunction.prototype); | 106 %InternalSetPrototype(GeneratorFunctionPrototype, GlobalFunction.prototype); |
| 109 %AddNamedProperty(GeneratorFunctionPrototype, | 107 %AddNamedProperty(GeneratorFunctionPrototype, |
| 110 toStringTagSymbol, "GeneratorFunction", DONT_ENUM | READ_ONLY); | 108 toStringTagSymbol, "GeneratorFunction", DONT_ENUM | READ_ONLY); |
| 111 %AddNamedProperty(GeneratorFunctionPrototype, "constructor", | 109 %AddNamedProperty(GeneratorFunctionPrototype, "constructor", |
| 112 GeneratorFunction, DONT_ENUM | READ_ONLY); | 110 GeneratorFunction, DONT_ENUM | READ_ONLY); |
| 113 %InternalSetPrototype(GeneratorFunction, GlobalFunction); | 111 %InternalSetPrototype(GeneratorFunction, GlobalFunction); |
| 114 %SetCode(GeneratorFunction, GeneratorFunctionConstructor); | 112 %SetCode(GeneratorFunction, GeneratorFunctionConstructor); |
| 115 | 113 |
| 116 }) | 114 }) |
| OLD | NEW |