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 <[email protected]>:</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--