select_error in native fns

This commit is contained in:
Dmitry Vasilev
2023-10-31 10:31:16 +08:00
parent 84ed01dbf2
commit d35ae9ae59
2 changed files with 25 additions and 1 deletions

View File

@@ -851,7 +851,14 @@ const select_error = state => {
const error_origin = find_node(node, n =>
has_error(n)
&& (
n.children == null || n.children.every(c => !has_error(c))
n.children == null
||
n.children.every(c =>
!has_error(c)
||
// Error in native fn
is_native_fn(c) && c.children == null
)
)
)

View File

@@ -2508,6 +2508,23 @@ const y = x()`
assert_equal(current_cursor_position(found_err_state), code.indexOf('throw'))
}),
test('select_error in native fn', () => {
const code = `
function x() {
Object.entries(null)
}
x()
`
const i = test_initial_state(code)
const {state: found_err_state} = COMMANDS.calltree.select_error(i)
assert_equal(found_err_state.active_calltree_node.fn.name, 'x')
assert_equal(
current_cursor_position(found_err_state),
code.indexOf('Object.entries')
)
}),
test('move_cursor arguments', () => {
const code = `
const x = (a, b) => { }