* new_tests * move_all_clobbered_tests * remove all the tests that no longer exist * re-run flow tests * Move all the flow tests to tests/flow and prettier to tests/ * Move prettier tests to their own folders * Add jsfmt files * run prettier snapshot tests
43 lines
734 B
JavaScript
43 lines
734 B
JavaScript
/***
|
|
* test env state tracking thru try/catch/finally
|
|
* @flow
|
|
*/
|
|
|
|
function foo() {
|
|
var x = 0;
|
|
var y;
|
|
try {
|
|
x = "";
|
|
} catch(e) {
|
|
x = false;
|
|
throw -1;
|
|
} finally {
|
|
y = {};
|
|
}
|
|
// here via [try; finally] only.
|
|
x(); // string ~/> function call (no num or bool error)
|
|
y(); // object ~/> function call (no uninitialized error)
|
|
}
|
|
|
|
function bar(response) {
|
|
var payload;
|
|
try {
|
|
payload = JSON.parse(response);
|
|
} catch (e) {
|
|
throw new Error('...');
|
|
}
|
|
// here via [try] only.
|
|
if (payload.error) { // ok
|
|
// ...
|
|
}
|
|
}
|
|
|
|
function qux() {
|
|
var x = 5;
|
|
try {
|
|
throw -1;
|
|
} finally {
|
|
}
|
|
x(); // unreachable
|
|
}
|