Fix display error thrown from consice fn

This commit is contained in:
Dmitry Vasilev
2022-10-17 03:36:41 +08:00
parent a6495a9cec
commit 3bade9e3e6
2 changed files with 20 additions and 1 deletions

View File

@@ -496,9 +496,12 @@ const get_value_explorer = (state, index) => {
}
if(frame.type == 'function_expr' && frame.body.type != 'do') {
const result = frame.children[1].result
return {
index: frame.children[1].index,
result: frame.children[1].result
result: result.ok
? result
: find_error_origin_node(frame.children[1]).result
}
}

View File

@@ -1794,6 +1794,22 @@ const y = x()`
assert_equal(s2.effects.type, 'unembed_value_explorer')
}),
test_only('move_cursor concise fn throws', () => {
const code = `
const throws = () => {
throw new Error('boom')
}
const x = () => 2 * (throws() + 1)
x()
`
const s1 = test_initial_state(code)
const {effects} = COMMANDS.move_cursor(s1, code.indexOf('throws()'))
assert_equal(effects.args[0].result.error.message, 'boom')
}),
test('frame follows cursor toplevel', () => {
const code = `
const x = () => {