| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
* resolve empty promises without params, not a single undefined param
(we can't just unsafeAddr constants on 1.6.14, and I don't see why we
need to pass undefined?)
* same in client with InternalError
* explicitly convert static `asglobal' to bool (1.6.14 turns unquoted
enums into ints...)
|
|
|
|
| |
no point in having identical overloads
|
| |
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
Some JS modules use this to check if they are running in a browser.
|
|
|
|
|
|
| |
* separate params with ; (semicolon) instead of , (colon)
* reduce screaming snake case use
* wrap long lines
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's a bad idea for several reasons:
* it's inefficient; must allocate an environment for a closure in Nim,
even though we already have one in JS
* writing macros for automatically creating functions with variadic
arguments is suprisingly difficult (see the entire `js/javascript'
module)
* it never really worked properly, because we never freed the associated
function pointer.
We hardly used it anyway, so the easiest fix is to get rid of it
completely.
|
| |
|
|
|
|
|
|
|
|
| |
This way they are no longer compatible, but we no longer need them to
be compatible anyway.
(This also forces us to throw out the old serialize module, and use
packet writers everywhere.)
|
| |
|
|
|
|
| |
instead of trying to evaluate exceptions...
|
|
|
|
|
|
|
| |
I've gotten tired of not being able to search for forward slashes.
Now it works like in vim, and you can also set default ignore case in
the config.
|
|
|
|
| |
See https://forum.nim-lang.org/t/10807
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* static function names can now be defined using the syntax
`Class:functionName' (or just use `Class' to take the default name
* fix URL.canParse with 1 argument only
* do not store JSFuncGenerator for constructors; just put the function
node in BoundFunctions
|
|
|
|
|
| |
* 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...
|
|
|
|
| |
Turns out desc can in fact be nil.
|
|
|
|
|
| |
Instead, make finalizers optionally pass their runtime for resource
deallocation.
|
|
|
|
| |
now I know how to :P
|
|
|
|
| |
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)
|
| |
|
| |
|
|
|
|
| |
Special case the global object, check for inheritance, etc.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
still non-functional
|
|
|
|
|
|
|
| |
If a fallback argument has been specified, treat undefined as if no
argument had been given.
This removes the need for the ?? 1 checks in the config.
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* ips -> io/
* loader related stuff -> loader/
* tempfile -> extern/
* buffer, forkserver -> server/
* lineedit, window -> display/
* cell -> types/
* opt -> types/
|
|
|
|
|
|
|
| |
GC_unref may indirectly call nim_finalize_for_js, which could mess up
execution of checkDestroy.
I haven't encountered it in refc, but it's definitely present in orc.
|
|
|
|
|
| |
Conceptually, seqs are by-value. In practice I they are by-ref,
but let's not depend on this.
|
|
|
|
|
|
|
| |
Mostly a proof of concept. Just bubble it unconditionally for now
and never prevent default.
Also, fix fromJSFunction by Dup'ing its closure JSValue.
|
|
|
|
|
|
| |
* fromJSFunction: dup the value, so that it cannot go out of context.
* setOpaque no longer calls GC_ref, so no need for it to be generic
instead of just taking a pointer.
|
| |
|
| |
|
| |
|
|
|
|
| |
mostly for symmetry with real objects
|