diff --git a/src/editor/value_explorer.js b/src/editor/value_explorer.js index 0bc684b..23be626 100644 --- a/src/editor/value_explorer.js +++ b/src/editor/value_explorer.js @@ -21,8 +21,8 @@ const isError = object => object instanceof globalThis.run_window.Error const isPromise = object => - object instanceof Promise - || + object instanceof Promise + || object instanceof globalThis.run_window.Promise const displayed_entries = object => { @@ -49,7 +49,15 @@ export const stringify_for_header = v => { // TODO clickable link, 'fn', cursive return 'fn ' + v.name } else if (isPromise(v)) { - return 'Promise<>' + if(v.status == null) { + return `Promise` + } else { + if(status.ok) { + return `Promise` + } else { + return `Promise` + } + } } else if(isError(v)) { return v.toString() } else if(type == 'object') { diff --git a/src/patch_promise.js b/src/patch_promise.js index 04036b8..bb35b91 100644 --- a/src/patch_promise.js +++ b/src/patch_promise.js @@ -5,11 +5,11 @@ export const patch_promise = window => { return } - class PromiseWithStatus extends Promise { + class PromiseWithStatus extends window.Promise { constructor(fn) { let status let is_constructor_finished = false - const p = new Promise.Original( + const p = new window.Promise.Original( (resolve, reject) => { fn( (value) => { @@ -47,7 +47,7 @@ export const patch_promise = window => { } } - PromiseWithStatus.Original = Promise + PromiseWithStatus.Original = window.Promise window.Promise = PromiseWithStatus } diff --git a/test/test.js b/test/test.js index d530045..fab9b23 100644 --- a/test/test.js +++ b/test/test.js @@ -2767,4 +2767,16 @@ const y = x()` assert_equal(logs, [1, 2]) }), + test('async/await bug', async () => { + const code = ` + const f = async () => { + console.log('f') + } + + await f() + ` + const i = await test_initial_state_async(code) + const cursor = COMMANDS.move_cursor(i, code.indexOf('console')) + }), + ]