
We were interpreting "undefined" as a variable lookup failure in some cases and throwing a ReferenceError exception instead of treating it as the valid value "undefined". This patch wraps the result of variable lookup in Optional<>, which allows us to only throw ReferenceError when lookup actually fails.
13 lines
289 B
JavaScript
13 lines
289 B
JavaScript
function assert(x) { if (!x) throw 1; }
|
|
|
|
function foo(a, b) { return a + b; }
|
|
|
|
try {
|
|
assert(isNaN(foo()) === true);
|
|
assert(isNaN(foo(1)) === true);
|
|
assert(foo(2, 3) === 5);
|
|
assert(foo(2, 3, 4) === 5);
|
|
console.log("PASS");
|
|
} catch (e) {
|
|
console.log("FAIL: " + e);
|
|
}
|