summaryrefslogtreecommitdiff
path: root/core/libdeno.rs
AgeCommit message (Collapse)Author
2020-01-06refactor: remove core/libdeno.rs (#3611)Bartek Iwańczuk
2020-01-06merge libdeno::DenoIsolate into core::Isolate (#3605)Bartek Iwańczuk
2020-01-05libdeno: don't pass pointers between core::Isolate and libdeno (#3602)Bartek Iwańczuk
2020-01-05remove libdeno::UserDataScope (#3601)Bartek Iwańczuk
2020-01-05Replace libdeno with rusty_v8 (#3556)Ry Dahl
2020-01-02Happy new year! (#3578)Ry Dahl
2019-12-20repl: do not crash on async op reject (#3527)Kevin (Kun) "Kassimo" Qian
2019-10-22core: gracefully handle bad op id (#3131)Bartek Iwańczuk
2019-09-12feat: add bindings to run microtasks from Isolate (#2793)Bartek Iwańczuk
2019-08-07Add op_id throughout op API (#2734)Ryan Dahl
Removes the magic number hack to switch between flatbuffers and the minimal dispatcher. Adds machinery to pass the op_id through the shared_queue.
2019-07-24Add error handling for dynamic imports to libdeno (#2678)Bert Belder
2019-06-14Revert "Refactor dispatch handling (#2452)"Ryan Dahl
Due to performance regression: https://github.com/denoland/deno/commit/dc60fe9f300043f191286ef804a365e16e455f87#commitcomment-33943711 This reverts commit dc60fe9f300043f191286ef804a365e16e455f87.
2019-06-13Refactor dispatch handling (#2452)andy finch
Promise id is now created in core and passed back to JS.
2019-06-10Expose dynamic import in core (#2472)Ryan Dahl
2019-05-02core: remove support for moving deno_buf ownership from C++ to JavaScriptBert Belder
The functionality hasn't been in use for a long time. Without this feature, the `alloc_ptr` and `alloc_len` fields are no longer necessary.
2019-05-01Refactor zero-copy buffers for performance and to prevent memory leaksBert Belder
* In order to prevent ArrayBuffers from getting garbage collected by V8, we used to store a v8::Persistent<ArrayBuffer> in a map. This patch introduces a custom ArrayBuffer allocator which doesn't use Persistent handles, but instead stores a pointer to the actual ArrayBuffer data alongside with a reference count. Since creating Persistent handles has quite a bit of overhead, this change significantly increases performance. Various HTTP server benchmarks report about 5-10% more requests per second than before. * Previously the Persistent handle that prevented garbage collection had to be released manually, and this wasn't always done, which was causing memory leaks. This has been resolved by introducing a new `PinnedBuf` type in both Rust and C++ that automatically re-enables garbage collection when it goes out of scope. * Zero-copy buffers are now correctly wrapped in an Option if there is a possibility that they're not present. This clears up a correctness issue where we were creating zero-length slices from a null pointer, which is against the rules.
2019-04-24core: Add test for snapshotting from Rust (#2197)Ryan Dahl
2019-04-08core: snapshot improvements (#2052)Ryan Dahl
* Moves how snapshots are supplied to the Isolate. Previously they were given by Behavior::startup_data() but it was only called once at startup. It makes more sense (and simplifies Behavior) to pass it to the constructor of Isolate. * Adds new libdeno type deno_snapshot instead of overloading deno_buf. * Adds new libdeno method to delete snapshot deno_snapshot_delete(). * Renames deno_get_snapshot() to deno_snapshot_new(). * Makes StartupData hold references to snapshots. This was implicit when it previously held a deno_buf but is made explicit now. Note that include_bytes!() returns a &'static [u8] and we want to avoid copying that.
2019-03-31Publish rust crate on crates.io (#2024)Bert Belder
2019-03-30Move //libdeno to //core/libdeno (#2015)Ryan Dahl
Fixes some sed errors introduced in c43cfe. Unfortunately moving libdeno required splitting build.rs into two parts, one for cli and one for core. I've also removed the arm64 build - it's complicating things at this re-org and we're not even testing it. I need to swing back to it and get tools/test.py running for it.
2019-03-21core: Allow terminating an Isolate from another thread (#1982)Simon Menke
2019-03-18Integrate //core into existing code baseRyan Dahl
This disables a few tests which are broken still: - tests/error_004_missing_module.test - tests/error_005_missing_dynamic_import.test - tests/error_006_import_ext_failure.test - repl_test test_set_timeout - repl_test test_async_op - repl_test test_set_timeout_interlaced - all of permission_prompt_test
2019-02-26deno_core (#1827)Ryan Dahl
A new low-level crate with focus on speed. This doesn't yet hook into the existing code base.