| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Use option() instead of some()
|
|
|
|
| |
Special case the global object, check for inheritance, etc.
|
| |
|
| |
|
| |
|
|
|
|
| |
Also, misc. refactorings
|
| |
|
| |
|
|
|
|
| |
to match standard behavior (e.g. accept null as int, etc)
|
|
|
|
|
| |
We now expose some functions from QuickJS to interact with JavaScript
strings without re-encoding them into UTF-8.
|
| |
|
|
|
|
| |
still non-functional
|
|
|
|
|
| |
* merge dom.console & client.Console
* move client-specific stuff out of Console (into callbacks when necessary)
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
We don't use the generic feature of selectors, so just unify the
client & buffer timeout types.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of the broken attempt at making regexes zero-copy (it copied
anyway), copy once and forget about it.
(There have been way too many problems with the destructor approach,
including the latest one where the GC would happily zero out our
regexes if they were in a sequence.
Maybe we can make this work once we switched to ORC. For now, it's
not worth the trouble.)
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
it's broken anyway, and unused currently
|
|
|
|
| |
And use that in extern().
|
| |
|
|
|
|
|
| |
A capture size of 0 (e.g. |) no longer sends the regex matcher into an
infinite loop.
|
| |
|
| |
|
|
|
|
|
| |
Conceptually, seqs are by-value. In practice I they are by-ref,
but let's not depend on this.
|
|
|
|
|
|
| |
Welp.
GC_ref should only be called if a new reference is being created.
This is what we did until 48f1306f, where this regression slipped in.
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
jssetprop just adds the set_property exotic function.
ActionMap is now editable from JS; the setter is implemented in the
same way as bindPagerKey/bindLineKey. (In fact, now those two just
call the setter.) But this is still rather inefficient and subject
to change.
|
| |
|
|
|
|
|
|
|
| |
Split out parts of the JS module, because it was starting to confuse
the compiler a little.
(Peakmem is back at 750M. Interesting.)
|
|
|
|
|
|
|
| |
Also, make ActionMap use getters/hasprop instead of a table copy.
peakmem remains up +200M at 950M after commit
9991bd3393483158ab0d1b9d995f695dee3c65dc. :(
|
|
|
|
|
|
|
|
| |
This makes not creating separate reference types for SameObject
attributes possible.
Also add a fromJS2 "hook" to allow defining fromJS behavior in modules
other than javascript.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
Use current document's URL if window && window.document, otherwise
default to about:blank.
Also, it seems that passing nil to window is really necessary in some
cases, so remove notes indicating otherwise.
|
|
|
|
|
|
|
|
|
| |
Walking the prototype chain for every single type just so we can define
the few LegacyUnforgeable properties we need is not the greatest idea.
Instead, we now merge LegacyUnforgeable lists with those of ancestor
prototypes, which reduces the entire ceremony to a single `get'
from the global table.
|
| |
|
|
|
|
| |
oops
|
|
|
|
|
|
|
|
| |
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.)
|
|
|
|
|
|
|
| |
This makes it so that host = 'example\.org' mandates an exact match,
but host = '^example' matches example.org, example.com, etc.
(Previously, 'example\.org' would have matched exampleexample.org
as well, which was quite counter-intuitive.)
|
| |
|
|
|
|
|
|
|
| |
This allows us to greatly simplify exec(Regex). In particular, we
no longer have to convert any line containing non-ascii characters
into UTF-16 (which was a significant inefficiency in regex search
until now).
|