| // Copyright 2019 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Flags: --allow-natives-syntax --no-lazy-feedback-allocation |
| |
| function* g(h) { |
| return yield* h; |
| } |
| |
| var f = Object.getPrototypeOf(function*(){}).prototype; |
| var t = f.throw; |
| const h = (function*(){})(); |
| h.next = function () { return { }; }; |
| const x = g(h); |
| x.next(); |
| delete f.throw; |
| |
| try { |
| t.bind(x)(); |
| } catch (e) {} |
| |
| %PrepareFunctionForOptimization(g); |
| g(); |
| %OptimizeFunctionOnNextCall(g); |
| g(); |