summaryrefslogtreecommitdiff
path: root/core
AgeCommit message (Collapse)Author
2021-04-08chore: update deps (#10058)Luca Casonato
This commit updates crate dependencies.
2021-04-08fix(core): error handling in examples (#9867)Inteon
2021-04-07perf(core.js): introduce promise ring (#9979)Aaron O'Mullan
This is another optimization to help improve the baseline overhead of async ops. It shaves off ~55ns/op or ~7% of the current total async op overhead. It achieves these gains by taking advantage of the sequential nature of promise IDs and optimistically stores them sequentially in a pre-allocated circular buffer and fallbacks to the promise Map for slow to resolve promises.
2021-04-05core: remove serde_json-isms in op_close() and op_resources() (#10026)Aaron O'Mullan
Core no longer uses `serde_json` now, besides re-exporting it or in the module specifier tests
2021-04-04fix: Properly await already evaluating dynamic imports (#9984)Nayeem Rahman
2021-04-04perf(serde_v8): introduce Serializable boxable object (#9983)Aaron O'Mullan
2021-04-03refactor: don't call Context::Global in async_op_response (#9971)Ryan Dahl
2021-04-02core/op_baseline: drop BufVec and minor cleanup (#9969)Aaron O'Mullan
2021-04-02perf: bench async op baseline (#9954)Aaron O'Mullan
2021-04-02refactor(ops): remove variadic buffers (#9944)Aaron O'Mullan
2021-04-02chore: bump dependent crates for cli (#9964)Kitson Kelly
2021-04-01perf(core): js errors as unions vs tuples to reduce allocs (#9947)Aaron O'Mullan
2021-03-31refactor: new optimized op-layer using serde_v8 (#9843)Aaron O'Mullan
- Improves op performance. - Handle op-metadata (errors, promise IDs) explicitly in the op-layer vs per op-encoding (aka: out-of-payload). - Remove shared queue & custom "asyncHandlers", all async values are returned in batches via js_recv_cb. - The op-layer should be thought of as simple function calls with little indirection or translation besides the conceptually straightforward serde_v8 bijections. - Preserve concepts of json/bin/min as semantic groups of their inputs/outputs instead of their op-encoding strategy, preserving these groups will also facilitate partial transitions over to v8 Fast API for the "min" and "bin" groups
2021-03-30perf: add op_baseline bench (#9924)Aaron O'Mullan
2021-03-27refactor(core): decode JsStackFrames using serde_v8 (#9902)Aaron O'Mullan
2021-03-26remove macro_use (#9884)Ryan Dahl
2021-03-26refactor(core): simplify heapStats() by using serde_v8 (#9901)Aaron O'Mullan
2021-03-26chore: publish serde_v8, bump version (#9898)Ryan Dahl
2021-03-25Introduce serde_v8 (#9722)Aaron O'Mullan
2021-03-25upgrade: Rust 1.51.0 (#9895)Yusuke Tanaka
2021-03-25feat(lsp): add import completions (#9821)Kitson Kelly
2021-03-23feat(core): Deno.core.heapStats() (#9659)Aaron O'Mullan
This commit implements "Deno.core.heapStats()" function that allows to programatically measure isolate heap-usage.
2021-03-21chore: release crates (#9847)Bartek Iwańczuk
2021-03-21fix(core): don't panic on invalid arguments for Deno.core.print (#9834)Andrew Mitchell
2021-03-20refactor: Move bin ops to deno_core and unify logic with json ops (#9457)Inteon
This commit moves implementation of bin ops to "deno_core" crates as well as unifying logic between bin ops and json ops to reuse as much code as possible (both in Rust and JavaScript).
2021-03-20upgrade: tokio 1.4.0 (#9842)Ryan Dahl
2021-03-19chores: enforce type ResourceId across codebase (#9837)Divy Srivastava
2021-03-18refactor: update minimal ops & rename to buffer ops (#9719)Inteon
This commit rewrites "dispatch_minimal" into "dispatch_buffer". It's part of an effort to unify JS interface for ops for both json and minimal (buffer) ops. Before this commit "minimal ops" could be either sync or async depending on the return type from the op, but this commit changes it to have separate signatures for sync and async ops (just like in case of json ops).
2021-03-14chore: upgrade to tokio 1.3.0 (#9778)Yusuke Tanaka
2021-03-12refactor: simplify icu data alignment (#9766)Ben Noordhuis
2021-03-12chore: bump crates (#9769)Luca Casonato
2021-03-10upgrade: rusty_v8 0.21.0 (#9725)Ryan Dahl
2021-03-09chore: release crates (#9731)Bartek Iwańczuk
2021-03-08fix(core): shared queue assertion failure in case of js error (#9721)Inteon
In case JavaScript throws an unhandled error, part of the "shared_queue" could be still unprocessed. If this is the case; throw the js runtime error instead of asserting on the queue size not being 0.
2021-03-04fix(runtime/web_worker): Don't block self.onmessage with TLA (#9619)Nayeem Rahman
This commit rewrites implementation of "JsRuntime::mod_evaluate". Event loop is no longer polled automatically and users must manually drive event loop forward after calling "mod_evaluate". Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-03-02Bump crate versions (#9651)Ryan Dahl
2021-02-25Upgrade rusty_v8 (V8 9.0.257.3) (#9605)Ryan Dahl
2021-02-25chore(core): optional args for registerErrorClass (#9602)Luca Casonato
2021-02-23refactor(core): cleanup module implementation (#9580)Bartek Iwańczuk
* remove "ModuleNameMap", instead define that map inline inside "Modules" struct * remove "dyn_import_id" argument from "mod_instantiate" * rename "Modules" struct to "ModuleMap" * rename "JsRuntime::modules" to "JsRuntime::module_map"
2021-02-23refactor(core): Allow multiple overflown responses in single poll (#9433)Inteon
This commit rewrites "JsRuntime::poll" function to fix a corner case that might caused "overflown_response" to be overwritten by other overflown response. The logic has been changed to allow returning multiple overflown response alongside responses from shared queue.
2021-02-21fix(core/bindings): Add stacks for dynamic import resolution errors (#9562)Nayeem Rahman
2021-02-20fix(core/runtime): Fix dynamic imports for already rejected modules (#9559)Nayeem Rahman
2021-02-19chore: rename default branch to main (#9503)Luca Casonato
2021-02-19fix(core): Make dynamic import async errors catchable (#9505)Nayeem Rahman
Fixes #6259
2021-02-17Make ModuleSpecifier a type alias, not wrapper struct (#9531)Ryan Dahl
2021-02-16feat: add structured cloning to Deno.core (#9458)Inteon
This commit adds two new "Deno.core" APIs: - "Deno.core.serialize" - "Deno.core.deserialize" These APIs are used to provide structured cloning of values and will be used for further web worker implementation. Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-02-15upgrade: rusty_v8 0.19.0 (#9466)Bartek Iwańczuk
Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
2021-02-15refactor(core): Reduce verbosity of binding core functions (#9497)Aaron O'Mullan
2021-02-13refactor(core): Strongly typed deserialization of JSON ops (#9423)Jared Beller
This PR makes json_op_sync/async generic to all Deserialize/Serialize types instead of the loosely-typed serde_json::Value. Since serde_json::Value implements Deserialize/Serialize, very little existing code needs to be updated, however as json_op_sync/async are now generic, type inference is broken in some cases (see cli/build.rs:146). I've found this reduces a good bit of boilerplate, as seen in the updated deno_core examples. This change may also reduce serialization and deserialization overhead as serde has a better idea of what types it is working with. I am currently working on benchmarks to confirm this and I will update this PR with my findings.
2021-02-12chore: release crates (#9481)Bartek Iwańczuk