function assert(b) { | |
if (!b) | |
throw new Error("Bad assertion"); | |
} | |
for (var i = 0; i < 1000; i++) { | |
;(function foo(x = 20) { | |
assert(typeof foo === "function"); | |
})(); | |
;(function foo(x = 20) { | |
function bar() { return foo; } | |
assert(typeof foo === "function"); | |
})(); | |
;(function foo(x = foo) { | |
var foo = 20; | |
assert(foo === 20); | |
assert(typeof x === "function"); | |
})(); | |
;(function foo(capFoo = function() { return foo; }) { | |
var foo = 20; | |
assert(foo === 20); | |
assert(typeof capFoo() === "function"); | |
})(); | |
;(function foo(x = eval("foo")) { | |
var foo = 20; | |
assert(foo === 20); | |
assert(typeof x === "function"); | |
})(); | |
} |