mirror of
https://github.com/leporello-js/leporello-js
synced 2026-01-13 21:14:28 -08:00
fix step out bug
This commit is contained in:
14
src/eval.js
14
src/eval.js
@@ -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 => {
|
||||||
|
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,
|
modules: result.modules,
|
||||||
logs: result.logs,
|
logs: result.logs,
|
||||||
eval_cxt: result.eval_cxt,
|
eval_cxt: result.eval_cxt,
|
||||||
calltree: assign_code(parse_result.modules, result.calltree),
|
calltree,
|
||||||
call: result.call && assign_code(parse_result.modules, result.call),
|
call,
|
||||||
io_cache: result.eval_cxt.io_cache,
|
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)
|
||||||
|
|||||||
13
test/test.js
13
test/test.js
@@ -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(`
|
||||||
|
|||||||
Reference in New Issue
Block a user