mirror of
https://github.com/leporello-js/leporello-js
synced 2026-01-13 21:14:28 -08:00
discard async calls from prev code run
This commit is contained in:
@@ -180,6 +180,7 @@ const do_external_imports_loaded = (
|
||||
state.parse_result,
|
||||
external_imports,
|
||||
state.on_async_call,
|
||||
state.calltree_changed_token,
|
||||
)
|
||||
const next = apply_eval_result(state, result)
|
||||
|
||||
@@ -202,6 +203,7 @@ const do_external_imports_loaded = (
|
||||
state.parse_result,
|
||||
external_imports,
|
||||
state.on_async_call,
|
||||
state.calltree_changed_token,
|
||||
{index: node.index, module: state.current_module},
|
||||
)
|
||||
|
||||
@@ -744,7 +746,10 @@ const move_cursor = (s, index) => {
|
||||
return do_move_cursor(state, index)
|
||||
}
|
||||
|
||||
const on_async_call = (state, call) => {
|
||||
const on_async_call = (state, call, calltree_changed_token) => {
|
||||
if(state.calltree_changed_token != calltree_changed_token) {
|
||||
return state
|
||||
}
|
||||
return {...state,
|
||||
calltree: make_calltree(
|
||||
root_calltree_node(state),
|
||||
|
||||
14
src/eval.js
14
src/eval.js
@@ -257,6 +257,7 @@ export const eval_modules = (
|
||||
parse_result,
|
||||
external_imports,
|
||||
on_async_call,
|
||||
calltree_changed_token,
|
||||
location
|
||||
) => {
|
||||
// TODO gensym __modules, __exports
|
||||
@@ -429,7 +430,7 @@ export const eval_modules = (
|
||||
}
|
||||
const call = children[0]
|
||||
children = null
|
||||
on_async_call(call)
|
||||
on_async_call(call, calltree_changed_token)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -567,6 +568,7 @@ export const eval_modules = (
|
||||
const actions = make_function(
|
||||
'external_imports',
|
||||
'on_async_call',
|
||||
'calltree_changed_token',
|
||||
codestring
|
||||
)(
|
||||
/* external_imports */
|
||||
@@ -575,7 +577,15 @@ export const eval_modules = (
|
||||
: map_object(external_imports, (name, {module}) => module),
|
||||
|
||||
/* on_async_call */
|
||||
call => on_async_call(assign_code(parse_result.modules, call))
|
||||
(call, calltree_changed_token) => {
|
||||
return on_async_call(
|
||||
assign_code(parse_result.modules, call),
|
||||
calltree_changed_token,
|
||||
)
|
||||
},
|
||||
|
||||
/* calltree_changed_token */
|
||||
calltree_changed_token
|
||||
)
|
||||
|
||||
const calltree_actions = {
|
||||
|
||||
Reference in New Issue
Block a user