fix step out bug

This commit is contained in:
Dmitry Vasilev
2023-06-10 18:34:58 +03:00
parent b774063b79
commit 1a23d3eefc
2 changed files with 27 additions and 8 deletions

View File

@@ -352,14 +352,20 @@ export const eval_modules = (
const result = run(module_fns, cxt, io_cache) const result = run(module_fns, cxt, io_cache)
const make_result = result => ({ const make_result = result => {
modules: result.modules, const calltree = assign_code(parse_result.modules, result.calltree)
logs: result.logs, const call = result.call == null
eval_cxt: result.eval_cxt, ? null
calltree: assign_code(parse_result.modules, result.calltree), : find_node(calltree, node => node.id == result.call.id)
call: result.call && assign_code(parse_result.modules, result.call), return {
io_cache: result.eval_cxt.io_cache, modules: result.modules,
}) logs: result.logs,
eval_cxt: result.eval_cxt,
calltree,
call,
io_cache: result.eval_cxt.io_cache,
}
}
if(is_async) { if(is_async) {
return result.__original_then(make_result) return result.__original_then(make_result)

View File

@@ -1737,6 +1737,19 @@ const y = x()`
assert_equal(e.current_calltree_node.toplevel, true) assert_equal(e.current_calltree_node.toplevel, true)
}), }),
test('edit function step out', () => {
const code = `
const x = () => {
return 1
}
x()
`
const i = test_initial_state(code)
const edited = COMMANDS.input(i, code.replace('1', '100'), code.indexOf('1')).state
const left = COMMANDS.calltree.arrow_left(edited)
assert_equal(left.active_calltree_node.toplevel, true)
}),
test('expand_calltree_node', () => { test('expand_calltree_node', () => {
// Test expecting MAX_DEPTH = 1 // Test expecting MAX_DEPTH = 1
const s = test_initial_state(` const s = test_initial_state(`