| // Copyright 2018 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: --expose-async-hooks |
| |
| try { |
| Object.prototype.__defineGetter__(0, function(){}); |
| assertThrows("x"); |
| } catch(e) { print("Caught: " + e); } |
| |
| try { |
| (function() { |
| let asyncIds = [], triggerIds = []; |
| let ah = async_hooks.createHook({ |
| init(asyncId, type, triggerAsyncId, resource) { |
| if (type !== 'PROMISE') { return; } |
| assertThrows("asyncIds.push(asyncId);"); |
| assertThrows("triggerIds.push(triggerAsyncId)"); |
| }, |
| }); |
| ah.enable(); |
| async function foo() {} |
| foo(); |
| })(); |
| } catch(e) { print("Caught: " + e); } |
| try { |
| var obj = {prop: 7}; |
| assertThrows("nonexistent(obj)"); |
| } catch(e) { print("Caught: " + e); } |