Re: JS engine(s) provided by gnustep

"H. Nikolaus Schaller" <[email protected]> Wed, 13 Dec 2023 10:26:12 +0100
Newsgroups gmane.comp.lib.gnustep.devel,gmane.comp.lib.gnustep.general
Message-ID <[email protected]>
--Apple-Mail=_7B8D1EC8-60E4-47B7-9BEB-C26D811EE567
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Riccardo,

SimpleWebKit has its own JS interpreter (ECMA-Script)...

=
https://git.goldelico.com/?p=3Dswk.git;a=3Dblob;f=3DSources/ECMAScriptPars=
er.h;h=3Ddf2117b53feb6bbc107ffe03a51d26a4ef57c321;hb=3D18944b0223a4a85c7f3=
38f8dacce071f7fb0d97e=EF=BF=BC

The main missing thing is how to manipulate the DOM tree objects and =
provide them to the JS language so that
a script can really modify what is being displayed.

And it has not been significantly tested and may be incomplete (haven't =
used it for years).

So to me it seems easier to fix issues than squeeze in a probably =
incompatible library API.

Well, there is another thing to be considered:
SWK is a WebKit including the WebDOMOperations and WebScriptObjects for =
JS.

I have never checked what the newer WKWebView has changed. It could be a =
completely new architecture.
So we might need a SWKWebView...

And finally there is now a JavaScriptCore framework.

So Apple seems to duplicate already existing functionality in multiple =
frameworks and it is not clear
if they are related or build on top of each other.

BR,
Nikolaus

> Am 13.12.2023 um 10:03 schrieb Riccardo Mottola =
<[email protected]>:
>=20
> Hi Nikolaus,
>=20
> H. Nikolaus Schaller wrote:
>> SimpleWebKit had all WebView interfaces to call JS and itself =
contains some incomplete JS (ECMA-Script) interpreter.
>=20
> what do you think of integrating a light-weight JS interpreter =
library? I wonder if at the backend of the parser this can be easily =
integrated.
>=20
> Riccardo


--Apple-Mail=_7B8D1EC8-60E4-47B7-9BEB-C26D811EE567
Content-Type: multipart/related;
	type="text/html";
	boundary="Apple-Mail=_2E6A30D3-92F2-47B8-938D-416547B36E70"


--Apple-Mail=_2E6A30D3-92F2-47B8-938D-416547B36E70
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dus-ascii"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;">Hi =
Riccardo,<div><br></div><div>SimpleWebKit has its own JS interpreter =
(ECMA-Script)...</div><div><br></div><div><div style=3D"display: =
block;"><div style=3D"-webkit-user-select: all; -webkit-user-drag: =
element; display: inline-block;" class=3D"apple-rich-link" =
draggable=3D"true" role=3D"link" =
data-url=3D"https://git.goldelico.com/?p=3Dswk.git;a=3Dblob;f=3DSources/EC=
MAScriptParser.h;h=3Ddf2117b53feb6bbc107ffe03a51d26a4ef57c321;hb=3D18944b0=
223a4a85c7f338f8dacce071f7fb0d97e"><a =
style=3D"border-radius:10px;font-family:-apple-system, Helvetica, Arial, =
sans-serif;display:block;-webkit-user-select:none;width:300px;user-select:=
none;-webkit-user-modify:read-only;user-modify:read-only;overflow:hidden;t=
ext-decoration:none;" class=3D"lp-rich-link" rel=3D"nofollow" =
href=3D"https://git.goldelico.com/?p=3Dswk.git;a=3Dblob;f=3DSources/ECMASc=
riptParser.h;h=3Ddf2117b53feb6bbc107ffe03a51d26a4ef57c321;hb=3D18944b0223a=
4a85c7f338f8dacce071f7fb0d97e" dir=3D"ltr" role=3D"button" =
draggable=3D"false" width=3D"300"><table =
style=3D"table-layout:fixed;border-collapse:collapse;width:300px;backgroun=
d-color:#E5E6E9;font-family:-apple-system, Helvetica, Arial, =
sans-serif;" class=3D"lp-rich-link-emailBaseTable" cellpadding=3D"0" =
cellspacing=3D"0" border=3D"0" width=3D"300"><tbody><tr><td =
vertical-align=3D"center"><table bgcolor=3D"#E5E6E9" cellpadding=3D"0" =
cellspacing=3D"0" width=3D"300" style=3D"font-family:-apple-system, =
Helvetica, Arial, =
sans-serif;table-layout:fixed;background-color:rgba(229, 230, 233, 1);" =
class=3D"lp-rich-link-captionBar"><tbody><tr><td style=3D"padding:8px =
0px 8px 0px;" class=3D"lp-rich-link-captionBar-textStackItem"><div =
style=3D"max-width:100%;margin:0px 16px 0px 16px;overflow:hidden;" =
class=3D"lp-rich-link-captionBar-textStack"><div =
style=3D"word-wrap:break-word;font-weight:500;font-size:12px;overflow:hidd=
en;text-overflow:ellipsis;text-align:left;" =
class=3D"lp-rich-link-captionBar-textStack-topCaption-leading"><a =
rel=3D"nofollow" =
href=3D"https://git.goldelico.com/?p=3Dswk.git;a=3Dblob;f=3DSources/ECMASc=
riptParser.h;h=3Ddf2117b53feb6bbc107ffe03a51d26a4ef57c321;hb=3D18944b0223a=
4a85c7f338f8dacce071f7fb0d97e" style=3D"text-decoration: none" =
draggable=3D"false"><font color=3D"#000000" style=3D"color: rgba(0, 0, =
0, 1);">Golden Delicious Computers - swk.git/blob - =
Sources/ECMAScriptParser.h</font></a></div><div =
style=3D"word-wrap:break-word;font-weight:400;font-size:11px;overflow:hidd=
en;text-overflow:ellipsis;text-align:left;" =
class=3D"lp-rich-link-captionBar-textStack-bottomCaption-leading"><a =
rel=3D"nofollow" =
href=3D"https://git.goldelico.com/?p=3Dswk.git;a=3Dblob;f=3DSources/ECMASc=
riptParser.h;h=3Ddf2117b53feb6bbc107ffe03a51d26a4ef57c321;hb=3D18944b0223a=
4a85c7f338f8dacce071f7fb0d97e" style=3D"text-decoration: none" =
draggable=3D"false"><font color=3D"#3E3E3E" style=3D"color: rgba(0, 0, =
0, 0.756863);">git.goldelico.com</font></a></div></div></td><td =
style=3D"padding:6px 12px 6px 0px;" =
class=3D"lp-rich-link-captionBar-rightIconItem" width=3D"36"><a =
rel=3D"nofollow" =
href=3D"https://git.goldelico.com/?p=3Dswk.git;a=3Dblob;f=3DSources/ECMASc=
riptParser.h;h=3Ddf2117b53feb6bbc107ffe03a51d26a4ef57c321;hb=3D18944b0223a=
4a85c7f338f8dacce071f7fb0d97e" draggable=3D"false"><img =
style=3D"pointer-events:none =
!important;display:inline-block;width:36px;height:36px;border-radius:3px;"=
 width=3D"36" height=3D"36" draggable=3D"false" =
class=3D"lp-rich-link-captionBar-rightIcon" alt=3D"git-favicon.png" =
src=3D"cid:3E21B6D4-7391-4934-B70D-BAA2A1689CA6"></a></td></tr></tbody></t=
able></td></tr></tbody></table></a></div></div></div><div><br></div><div><=
/div><div>The main missing thing is how to manipulate the DOM tree =
objects and provide them to the JS language so that</div><div>a script =
can really modify what is being displayed.</div><div><br></div><div>And =
it has not been significantly tested and may be incomplete (haven't used =
it for years).</div><div><br></div><div>So to me it seems easier to fix =
issues than squeeze in a probably incompatible library =
API.</div><div><br></div><div>Well, there is another thing to be =
considered:</div><div>SWK is a WebKit including the WebDOMOperations and =
WebScriptObjects for JS.</div><div><br></div><div>I have never checked =
what the newer WKWebView has changed. It could be a completely new =
architecture.</div><div>So we might need a =
SWKWebView...</div><div><br></div><div>And finally there is now a =
JavaScriptCore framework.</div><div><br></div><div>So Apple seems to =
duplicate already existing functionality in multiple frameworks and it =
is not clear</div><div>if they are related or build on top of each =
other.</div><div><br></div><div>BR,</div><div>Nikolaus</div><div><div><br>=
<blockquote type=3D"cite"><div>Am 13.12.2023 um 10:03 schrieb Riccardo =
Mottola &lt;[email protected]&gt;:</div><br =
class=3D"Apple-interchange-newline"><div><div>Hi Nikolaus,<br><br>H. =
Nikolaus Schaller wrote:<br><blockquote type=3D"cite">SimpleWebKit had =
all WebView interfaces to call JS and itself contains some incomplete JS =
(ECMA-Script) interpreter.<br></blockquote><br>what do you think of =
integrating a light-weight JS interpreter library? I wonder if at the =
backend of the parser this can be easily =
integrated.<br><br>Riccardo<br></div></div></blockquote></div><br></div></=
body></html>=

--Apple-Mail=_2E6A30D3-92F2-47B8-938D-416547B36E70
Content-Transfer-Encoding: base64
Content-Disposition: inline;
	filename=git-favicon.png
Content-Type: image/png;
	x-unix-mode=0666;
	name="git-favicon.png"
Content-Id: <3E21B6D4-7391-4934-B70D-BAA2A1689CA6>

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAACVBMVEXAAAAAgAD///+K/HwIAAAA
JUlEQVQI12NYBQQM2IgGBQ4mCIEQW7oyK4phampkGIQAc1G1AQCRxCNbyW92oQAAAABJRU5ErkJg
gg==
--Apple-Mail=_2E6A30D3-92F2-47B8-938D-416547B36E70--

--Apple-Mail=_7B8D1EC8-60E4-47B7-9BEB-C26D811EE567--