This commit is contained in:
Dmitry Vasilev
2022-11-29 03:37:15 +08:00
parent 1c07a092e7
commit 0332d5a0b8
4 changed files with 21 additions and 17 deletions

View File

@@ -113,9 +113,9 @@ import BigNumber from './path/to/bignumber.mjs';
![External import](docs/images/external_import.png)
Currently every external is loaded once and cached until Leporello is restarted
(TODO what happens if we load modules in iframe and then recreate iframe)
(TODO serve modules from service worker, change host every time)
Currently every external is loaded once and cached until Leporello is restarted
(TODO change path to modules every time it changed on disk, since modules are
served from service workers).
## Hotkeys

View File

@@ -58,8 +58,8 @@ type Node = ToplevelCall | Call
// TODO just export const Iframe_Function?
const make_function = (...args) => {
if(globalThis.process != null) {
// Tests are run in Node.js
if(globalThis.run_window == null) {
// Code is executed in test env
return new Function(...args)
} else {
// Code run in browser and user opened run_window

View File

@@ -2241,14 +2241,16 @@ const y = x()`
}),
test('get_initial_state toplevel not entrypoint', () => {
const s = COMMANDS.get_initial_state({
files: {
const s = test_initial_state(
{
'' : `import {x} from 'x'; x()`,
'x' : `export const x = () => 1; x()`,
},
entrypoint: '',
current_module: 'x',
})
{
entrypoint: '',
current_module: 'x',
}
)
assert_equal(s.current_calltree_node.toplevel, true)
assert_equal(s.active_calltree_node, null)
}),

View File

@@ -28,13 +28,15 @@ export const assert_code_error = (codestring, error) => {
}
export const test_initial_state = (code, state) => {
return COMMANDS.get_initial_state(
{
...state,
files: typeof(code) == 'object' ? code : { '' : code},
entrypoint: '',
current_module: '',
},
return COMMANDS.open_run_window(
COMMANDS.get_initial_state(
{
files: typeof(code) == 'object' ? code : { '' : code},
entrypoint: '',
current_module: '',
...state,
},
)
)
}