Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | javascript: finish LegacyUnforgeable + misc fixes | bptato | 2023-08-20 | 1 | -62/+91 | |
| | | | | | | | | Add jsuffget, jsuffunc for setting LegacyUnforgeable on functions. Misc fixes: * define LegacyUnforgeable properties for native object shims * replace some macros with templates | |||||
* | javascript: update Events, misc fixes & additions | bptato | 2023-08-20 | 1 | -193/+351 | |
| | | | | | | | | | | | | | | 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. | |||||
* | Fixes & workarounds to compile on Nim 2.0.0 | bptato | 2023-08-01 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | * 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.) | |||||
* | js: remove unused function | bptato | 2023-07-05 | 1 | -4/+0 | |
| | ||||||
* | Event: add some properties, js: add defineConsts | bptato | 2023-07-04 | 1 | -1/+18 | |
| | ||||||
* | Fix JS type conversion regressions | bptato | 2023-07-03 | 1 | -7/+11 | |
| | ||||||
* | nim_finalize_for_js: use withValue | bptato | 2023-07-03 | 1 | -2/+2 | |
| | ||||||
* | Add XHR/Event stubs | bptato | 2023-07-02 | 1 | -0/+5 | |
| | ||||||
* | Add platform object conversion to union type | bptato | 2023-07-02 | 1 | -3/+19 | |
| | | | | And with that, implement Request constructor with a Request init. | |||||
* | return Result[T, JSError] from fromJS | bptato | 2023-07-02 | 1 | -66/+116 | |
| | ||||||
* | fromJSObject: throw on invalid object class | bptato | 2023-07-02 | 1 | -12/+24 | |
| | ||||||
* | Remove outdated comment | bptato | 2023-07-02 | 1 | -7/+0 | |
| | ||||||
* | Use separate flag for adding getset instead of repr | bptato | 2023-07-01 | 1 | -4/+4 | |
| | | | | Still a hack, but maybe more reliable? | |||||
* | use =destroy instead of finalizers | bptato | 2023-07-01 | 1 | -2/+11 | |
| | | | | | This should help with moving to ORC in the future. (Also, finalizers do not work very well in the first place.) | |||||
* | Add window.location | bptato | 2023-06-29 | 1 | -38/+49 | |
| | | | | Note: setters do not work yet. | |||||
* | Remove .jsgctor | bptato | 2023-06-29 | 1 | -21/+2 | |
| | | | | | Not sure how it ever worked. This fixes Text() constructors etc. | |||||
* | Refactor fromJS body | bptato | 2023-06-28 | 1 | -66/+87 | |
| | ||||||
* | Remove unused function stub & comment | bptato | 2023-06-27 | 1 | -10/+0 | |
| | ||||||
* | Remove getClassID hack | bptato | 2023-06-27 | 1 | -11/+4 | |
| | | | | Add a JS_GetClassID function to QJS instead. | |||||
* | Free JSRuntime, JSContext and ctors on exit | bptato | 2023-06-27 | 1 | -1/+3 | |
| | ||||||
* | Fix potential crash on startup | bptato | 2023-06-24 | 1 | -4/+7 | |
| | ||||||
* | Working Nim-QuickJS GC integration | bptato | 2023-06-24 | 1 | -40/+72 | |
| | | | | I believe this works correctly. Hopefully I'm not wrong. | |||||
* | Remove LegacyJSError, use enums for storing symbols | bptato | 2023-06-22 | 1 | -57/+45 | |
| | ||||||
* | Replace nim_finalize_for_js with collectInteropCycles | bptato | 2023-06-20 | 1 | -51/+23 | |
| | | | | | | Pros: maybe doesn't corrupt memory Cons: leaks memory instead Maybe we should just use destructors... | |||||
* | Do not GC_ref JS object opaques | bptato | 2023-06-20 | 1 | -1/+0 | |
| | | | | So that the finalizer is actually triggered | |||||
* | Do not pass JSContext to getJSValue | bptato | 2023-06-20 | 1 | -5/+5 | |
| | ||||||
* | Fix fromJS Opt bugs | bptato | 2023-06-19 | 1 | -9/+10 | |
| | ||||||
* | Reject fetch promise on network error | bptato | 2023-06-19 | 1 | -1/+1 | |
| | | | | Instead of setting the non-standard res variable. | |||||
* | Get rid of the .jserr pragma | bptato | 2023-06-19 | 1 | -70/+11 | |
| | ||||||
* | Fix memory leak with alt pointers | bptato | 2023-06-19 | 1 | -1/+6 | |
| | | | | Must unref them if unused. | |||||
* | Rework JS exception system | bptato | 2023-06-19 | 1 | -120/+222 | |
| | | | | | Now we use Result for passing exceptions to JS. As a result, we can finally get rid of the .jserr pragma. | |||||
* | Add typeerror to jsgctor | bptato | 2023-06-18 | 1 | -1/+1 | |
| | ||||||
* | Cleanups & bug fixes involving promises | bptato | 2023-06-15 | 1 | -11/+16 | |
| | | | | | Now a promise returning nil doesn't just leave the rest of the then chain hanging. Hooray. | |||||
* | Simplify request.json, remove unused bindings | bptato | 2023-06-09 | 1 | -9/+0 | |
| | ||||||
* | Remove JSObject again, add File API constructor | bptato | 2023-06-08 | 1 | -6/+0 | |
| | ||||||
* | Pre-allocate alternative objects for finalizer | bptato | 2023-06-05 | 1 | -3/+12 | |
| | | | | Not sure if this helps | |||||
* | js: fix string regression, throw on invalid ctor | bptato | 2023-06-05 | 1 | -3/+5 | |
| | ||||||
* | Fix empty string crash/regression | bptato | 2023-06-05 | 1 | -1/+1 | |
| | | | | Oops | |||||
* | Refactor Request constructor | bptato | 2023-06-05 | 1 | -6/+8 | |
| | ||||||
* | Add support for canvas and multipart | bptato | 2023-06-05 | 1 | -78/+178 | |
| | | | | | | | | | | | | | | | Quite incomplete canvas implementation. Crucially, the layout engine can't do much with whatever is drawn because it doesn't support images yet. I've re-introduced multipart as well, with the FormData API. For the append function I've also introduced a hack to the JS binding generator that allows requesting the JSContext pointer in nim procs. Really I should just fix the union generator thing and add support for overloading. In conclusion, for now the only thing canvas can be used for is exporting it as PNG and uploading it somewhere. Also, we now have PNG encoding and decoding too. (Now if only we had sixels as well...) | |||||
* | Add module loading to client | bptato | 2023-06-01 | 1 | -2/+30 | |
| | | | | Files only, for now. | |||||
* | Add setTimeout, setInterval to window | bptato | 2023-06-01 | 1 | -0/+7 | |
| | ||||||
* | Rewrite new Request binding | bptato | 2023-05-21 | 1 | -11/+16 | |
| | | | | | Still far from perfect, but now at least it has a bit more to do with what the standard mandates. | |||||
* | WIP fetch | bptato | 2023-04-30 | 1 | -6/+20 | |
| | ||||||
* | quickjs: make JSValue distinct on 32-bit | bptato | 2023-02-05 | 1 | -0/+3 | |
| | ||||||
* | javascript: remove unused pointer case from getTypePtr | bptato | 2023-01-05 | 1 | -1/+1 | |
| | | | | I probably removed the last call of getTypePtr with a pointer long ago. | |||||
* | javascript: refactor toJS | bptato | 2023-01-05 | 1 | -78/+74 | |
| | | | | Split up the huge generic toJS function. | |||||
* | dom: add better attribute reflection | bptato | 2023-01-02 | 1 | -8/+30 | |
| | | | | | Instead of creating a new function for each attribute, use a single magic function for reflected attributes. | |||||
* | javascript: more robust toJSNumber | bptato | 2022-12-31 | 1 | -20/+15 | |
| | ||||||
* | javascript: fix incorrect error() statement | bptato | 2022-12-31 | 1 | -1/+1 | |
| |