prettier/tests/flow/try/test.js

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
}