const localSetTimeout = setTimeout;
const LocalBuffer = Buffer;
const LocalDOMPoint = DOMPoint;
async function main() {
console.log(`typeof localSetTimeout = ${typeof localSetTimeout}`)
console.log('calling setTimeout directly at runtime')
await new Promise(resolve => setTimeout(resolve, 1000))
console.log('calling setTimeout through captured alias at runtime')
await new Promise(resolve => localSetTimeout(resolve, 1000))
console.log('calling Buffer constructor directly at runtime')
const b0 = new Buffer('first', 'utf8')
console.log(`buffer 0 = ${b0.toString()}`)
console.log('calling LocalBuffer constructor directly at runtime')
const b1 = new LocalBuffer('second', 'utf8')
console.log(`buffer 1 = ${b1.toString()}`)
console.log('attempt to construct a DOMPoint with its constructor')
try {
new DOMPoint(0, 0, 0, 0)
console.log('point was constructed!')
} catch (e) {
console.log('expected error caught: ok')
}
console.log('attempt to construct a DOMPoint through its aliased constructor')
try {
new LocalDOMPoint(0, 0, 0, 0)
console.log('point was constructed!')
} catch(e) {
console.log('expected error caught: ok')
}
console.log('ok')
return null;
}
exports.main = main;