Age | Commit message (Collapse) | Author |
|
Unfortunately V8 has a debug-only assert that checks
that a SnapshotCreator actually created a snapshot:
https://github.com/denoland/deno_third_party/blob/7d8c9aa769778140e1619f545e706bf34545509e/v8/src/api.cc#L571
This was not being triggered in Linux & Mac debug builds
because we were using the prebuilt release V8 build.
It was being triggered in Windows debug build because there is
a prebuilt v8_debug.lib. However the Windows error went unnoticed
because we only run release builds in CI.
|
|
|
|
Continuation of the work done in c113df.
|
|
- Improves speed and binary size significantly.
- Makes deno_last_exception() output a JSON structure.
- Isolate::execute and Isolate::event_loop now return
structured, mapped JSError objects on errors.
- Removes libdeno functions:
libdeno.setGlobalErrorHandler()
libdeno.setPromiseRejectHandler()
libdeno.setPromiseErrorExaminer()
In collaboration with Ryan Dahl.
|
|
In preperation for adding other callbacks to libdeno.
|
|
|
|
These were discovered using the LSAN.
http://dev.chromium.org/developers/testing/leaksanitizer
|
|
|
|
The windows debug build was broken due to libc link errors.
|
|
|
|
|
|
Pro:
time ./out/debug/deno tests/error_001.ts 3.0s -> 0.4s
Con:
time ./tool/build.py snapshot 33s -> 1m52s
out/debug/gen/snapshot_deno.bin 39M -> 121M
|
|
|
|
|
|
|
|
- Use a proper class for DenoIsolate.
- Move extern C stuff to api.cc
|
|
|
|
|
|
|
|
Instead of V8 map.
|
|
|
|
|
|
Instead, pass the isolate data to the dispatch callback directly.
|
|
Ensure that at most one mutable Isolate reference exists at a time.
`deno_execute()` and `deno_respond()` now borrow a reference to the rust-side
isolate from the caller. When we need a reference to the isolate while one of
these functions is on the stack, `deno_get_data()` can be used to borrow back
that reference.
|
|
Also use the correct rust type for it.
|
|
|
|
|
|
|
|
This is a large API refactor of deno.h which replaces
deno_send() and deno_set_response() with deno_respond().
It also adds a req_id parameter to the deno_recv_cb.
Make writeFile/writeFileSync use it.
|
|
|
|
Fixes #744.
|
|
|
|
|
|
Refactors handlers.rs
The idea is that all Deno "ops" (aka bindings) should map onto
a Rust Future. By setting the "sync" flag in the Base message
users can determine if the future is executed immediately or put
on the event loop.
In the case of async futures, a promise is automatically created.
Errors are automatically forwarded and raised.
TODO:
- The file system ops in src/handler.rs are not using the thread pool
yet. This will be done in the future using tokio_threadpool::blocking.
That is, if you try to call them asynchronously, you will get a promise
and it will act asynchronous, but currently it will be blocking.
- Handlers in src/handler.rs returned boxed futures. This was to make
it easy while developing. We should try to remove this allocation.
|
|
Ref #374
|
|
|
|
|
|
|
|
|
|
|