From 0fbf1daa686730d701d3d9054ba14ca482d9e687 Mon Sep 17 00:00:00 2001 From: DerThorsten Date: Fri, 19 Jan 2024 17:14:03 +0100 Subject: [PATCH] binding --- notebooks/xeus-javascript.ipynb | 22 ++++++---------------- src/pre.js | 20 +++++++++++--------- src/xinterpreter.cpp | 2 +- 3 files changed, 18 insertions(+), 26 deletions(-) diff --git a/notebooks/xeus-javascript.ipynb b/notebooks/xeus-javascript.ipynb index 73ca25c..d254ab8 100644 --- a/notebooks/xeus-javascript.ipynb +++ b/notebooks/xeus-javascript.ipynb @@ -4,9 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "
\n", - "

javascript kernel based on xeus

\n", - "
" + "# javascript kernel based on xeus\n" ] }, { @@ -64,7 +62,10 @@ }, "outputs": [], "source": [ - "await new Promise(r => setTimeout(r, 2000));" + "const sleep = ms => new Promise(r => setTimeout(r, ms));\n", + "console.log(\"pre sleep\")\n", + "await sleep(1000);\n", + "console.log(\"post sleep\")" ] }, { @@ -72,20 +73,9 @@ "metadata": {}, "source": [ "# auto completion\n", - "press tab" + "press tab (ijs.display.svg or ijs.display.html are some of many possible completions)" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "vscode": { - "languageId": "plaintext" - } - }, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": null, diff --git a/src/pre.js b/src/pre.js index 27e6764..71155bd 100644 --- a/src/pre.js +++ b/src/pre.js @@ -1,22 +1,24 @@ Module["_make_async_from_code"] = function (code) { - - - - - - let async_function = Function(` const afunc = async function(){ - function __storeVars(target) { return new Proxy(target, { has(target, prop) { return true; }, - get(target, prop) { return (prop in target ? target : globalThis)[prop]; } + get(target, prop) { + if(prop in target){ + return target[prop]; + } + else{ + if (typeof globalThis[prop] === 'function') { + return globalThis[prop].bind(globalThis); + } + return globalThis[prop]; + } + } }); } - let __stored_vars = {}; with(__storeVars(__stored_vars)) { diff --git a/src/xinterpreter.cpp b/src/xinterpreter.cpp index a08271c..eb3b40a 100644 --- a/src/xinterpreter.cpp +++ b/src/xinterpreter.cpp @@ -62,7 +62,7 @@ namespace xeus_javascript interpreter::interpreter() { - std::cout<<"V37"<