| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
TODO: find the exact flags we need instead of -fpermissive.
See also:
https://todo.sr.ht/~bptato/chawan/12
https://forum.nim-lang.org/t/11587
|
|
|
|
|
|
|
| |
* unwind the QJS stack with an uncatchable exception when quit is called
* clean up JS references in JSRuntime free even when the Nim
counterparts are still alive
* simplify some tests
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we didn't actually free the main JS runtime, probably because
you can't do this without first waiting for JS to unwind the stack.
(This has the unfortunate effect that code now *can* run after quit().
TODO: find a fix for this.)
This isn't a huge problem per se, we only have one of these and the OS
can clean it up. However, it also disabled the JS_FreeRuntime leak
check, which resulted in sieve-like behavior (manual refcounting is
a pain).
So now we choose the other tradeoff: quit no longer runs exitnow, but
it waits for the event loop to run to the end and only then exits the
browser. Then, before exit we free the JS context & runtime, and also
all JS values allocated by config.
Fixes:
* fix `ad' flag not being set for just one siteconf/omnirule
* fix various leaks (since leak check is enabled now)
* use ptr UncheckedArray[JSValue] for QJS bindings that take an array
* allow JSAtom in jsgetprop etc., also disallow int types other than
uint32
* do not set a destructor for globals
|
| |
|
|
|
|
|
|
| |
* separate params with ; (semicolon) instead of , (colon)
* reduce screaming snake case use
* wrap long lines
|
|
|
|
|
|
| |
* the uint8array thing is probably from txiki.js, but we never used it
* upstream now has JS_GetClassID, importing that instead... (so this
commit won't build :/)
|
| |
|
|
|
|
|
| |
* turn JSFuncGenerator into a ref object (it's faster this way)
* remove strformat dependency
|
| |
|
| |
|
|
|
|
| |
much better
|
|
|
|
| |
(still no module support in buffer...)
|
|
|
|
|
|
| |
cint was incorrect :/
Makes me wonder if maybe we should just use futhark after all...
|
|
|
|
|
|
|
|
|
|
| |
* Add select & copy selection functionality to container
* Fix bug in generateSwapOutput where output could be misplaced
because of zero-width cells
* Add fromJSPromise, call runJSJobs in every iteration of the
headed event loop
* "await" pager actions that output a promise
* Change default view source keybinding to `\'
|
|
|
|
|
| |
* bindings/quickjs: importc and use correct pointer types
* add constcharp module for when it is unavoidable
|
|
|
|
| |
just use an UncheckedArray in the binding
|
|
|
|
|
|
|
| |
* Expose js_create_from_ctor from QuickJS and directly use that (instead
of badly recreating it)
* Do not call defineUnforgeable twice (it is inevitably called in toJSP0,
so jsctor does not need it)
|
| |
|
|
|
|
|
| |
We now expose some functions from QuickJS to interact with JavaScript
strings without re-encoding them into UTF-8.
|
| |
|
|
|
|
|
|
|
|
| |
* Fix an issue with Collection cache invalidation (we must invalidate
collections of the parent node on insertion, so that it triggers
a refresh).
* Remove circular reference of document.document, now we use a function
instead.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Remove some unused properties from objects
* Un-extern JSFunctionList
* Remove js/javascript dependency from regex (the wrapper functions
were rather pointless)
* Remove setProperty (only toJS(Table) used it, but there we have to
use defineProperty instead.)
* Accordingly, use definePropertyCWE in toJS(Table)
* Simplify fromJSTable (replace pointer arithmetic with UncheckedArray)
* Reduce implicit `result' usage
|
|
|
|
|
|
|
|
| |
Add jsuffget, jsuffunc for setting LegacyUnforgeable on functions.
Misc fixes:
* define LegacyUnforgeable properties for native object shims
* replace some macros with templates
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Events: just implement the interfaces, no events are triggered yet.
JS changes:
* add LegacyUnforgeable
* make consts enumerable
* fix crash in isInstanceOf
* fix destructor warnings
* refactor registerType
As a result, peakmem is now 1G+ on 1.6.14. It stays ~750M on 2.0.0. Hmm.
Well, better upgrade to 2.0.0 I guess.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Import punycode, as it has been removed from stdlib.
* Fix some syntax errors
* Apparently you can no longer compare distinct pointers with nil.
Add explicit comparisons with typeof(nil) instead.
* htmlparser: rename _ to other, as semantics of _ have changed.
(Quite a shame, it looked better with _. Oh well.)
* Explicitly specify mm:refc, as the browser OOMs with orc for
some reason.
Confirmed to compile & run on 2.0.0, 1.6.14, 1.6.12, 1.6.10 and 1.6.8.
(<1.6.8 it's broken & wontfix.)
|
| |
|
|
|
|
| |
Introduced by 1.6.14. Warns of undefined behavior.
|
|
|
|
| |
Add a JS_GetClassID function to QJS instead.
|
|
|
|
| |
I believe this works correctly. Hopefully I'm not wrong.
|
| |
|
|
|
|
| |
Taken from txiki.js, so it includes zamofex's top-level await patch.
|
|
|
|
|
| |
Now we use Result for passing exceptions to JS. As a result, we can
finally get rid of the .jserr pragma.
|
| |
|
|
|
|
| |
Files only, for now.
|
| |
|
| |
|
| |
|
|
|
|
| |
Oops.
|
| |
|
|
|
|
| |
Use ids instead of pure pointers, so we can utilize the JS finalizer.
|
| |
|
|
|
|
| |
Also, a little bonus: w3m keybindings
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The original idea was to use the same pragmas as object members, but
unfortunately this doesn't seem to work consistently after all.
|
| |
|