summaryrefslogtreecommitdiff
path: root/core/libdeno/api.cc
AgeCommit message (Collapse)Author
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-11-07upgrade: V8 8.0.192Ryan Dahl
2019-10-22core: gracefully handle bad op id (#3131)Bartek Iwańczuk
2019-10-14perf: eager poll async ops in Isolate (#3046)Bartek Iwańczuk
2019-09-24Upgrade V8 for top-level-await (#3015)Ryan Dahl
2019-09-15Move GN root into //core/libdeno (#2943)Christian Moritz
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-18remove v8::Locker from deno_respond (#2664)andy finch
2019-07-08Rewrite snapshot_creator in RustBartek Iwańczuk
2019-06-20Fix silent failure of WebAssembly.instantiate() (#2548)Ryan Dahl
By making WASM compilation synchronous. We'll have to do more work to make it properly async.
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-11Revert "Work around Windows-only V8 concurrent initialization crash"Bert Belder
This fix is no longer necessary as the underlying V8 bug has been fixed upstream. This reverts commit 48bcfce09e11901244447617be2eb7789427eab0.
2019-05-11core: make PinnedBuf::Raw -> PinnedBuf conversion actually a moveBert Belder
2019-05-02Work around Windows-only V8 concurrent initialization crashBert Belder
This patch provides a work-around for an apparent V8 bug where initializing multiple isolates concurrently leads to a crash on Windows. At the time of writing the cause of this crash is not exactly understood, but it seems to be related to the V8 internal function win64_unwindinfo::RegisterNonABICompliantCodeRange(), which didn't exist in older versions of V8.
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-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.