mirror of
https://github.com/leporello-js/leporello-js
synced 2026-01-13 13:04:30 -08:00
fix step out bug
This commit is contained in:
22
src/eval.js
22
src/eval.js
@@ -352,14 +352,20 @@ export const eval_modules = (
|
||||
|
||||
const result = run(module_fns, cxt, io_cache)
|
||||
|
||||
const make_result = result => ({
|
||||
modules: result.modules,
|
||||
logs: result.logs,
|
||||
eval_cxt: result.eval_cxt,
|
||||
calltree: assign_code(parse_result.modules, result.calltree),
|
||||
call: result.call && assign_code(parse_result.modules, result.call),
|
||||
io_cache: result.eval_cxt.io_cache,
|
||||
})
|
||||
const make_result = result => {
|
||||
const calltree = assign_code(parse_result.modules, result.calltree)
|
||||
const call = result.call == null
|
||||
? null
|
||||
: find_node(calltree, node => node.id == result.call.id)
|
||||
return {
|
||||
modules: result.modules,
|
||||
logs: result.logs,
|
||||
eval_cxt: result.eval_cxt,
|
||||
calltree,
|
||||
call,
|
||||
io_cache: result.eval_cxt.io_cache,
|
||||
}
|
||||
}
|
||||
|
||||
if(is_async) {
|
||||
return result.__original_then(make_result)
|
||||
|
||||
13
test/test.js
13
test/test.js
@@ -1737,6 +1737,19 @@ const y = x()`
|
||||
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 expecting MAX_DEPTH = 1
|
||||
const s = test_initial_state(`
|
||||
|
||||
Reference in New Issue
Block a user