| Age | Commit message (Collapse) | Author |
|
`Isolate::from_void_ptr` is renamed to `from_raw_ptr`, to keep
consistency with std libs.
It is changed to `unsafe` function, because it can't guarantee that the
input is valid. This guarantee should be provided by the caller.
Its return type is changed to `&Isolate`, because `&mut Isolate` type
requires that no other aliases co-exist in this period of time, this
does not seem true. So I changed most of the methods to accept shared
reference `&Isolate`. It is easier to reason about the correctness of
`unsafe` blocks. As long as these shared references are in the same
thread, these `unsafe` codes are probably correct.
|
|
The main purpose of this PR is to remove the `'static` lifetime bound in
type OpCreator =
fn(state: &Arc<IsolateState>, base: &msg::Base, data: &'static mut [u8])
-> Box<Op>;
The reason is simple: it is plain wrong, the `data` is actually not `'static`. It is created when the message is sent from C side, and will be recycled when the message is responded. It violates the definition of `'static` lifetime.
If someone save this pointer somewhere else, and reuse it later again, uninitialized memory could be accessed. This kind of memory unsafety does not happen yet because the logic is carefully organized in this project. Lifetime constraints are maintained by code convention. It could be more robust if we can express this constraint by Rust's type system.
Basic idea: tie buffer's lifetime to an object's lifetime, a.k.a, RAII. The type `deno_buf` is pretty suitable for this job.
|
|
|
|
|
|
|
|
|
|
Does not yet support streaming, only strings and TypedArrays for now.
|
|
Adds a general HttpHeader flatbuffer message for serializing requests
and responses.
|
|
Also Buffer.readFrom in fetch() to buffer response.
|
|
|
|
- Running repl from js side.
- Add tests for repl behavior.
- Handle ctrl-C and ctrl-D.
|
|
Run with: cargo clippy
https://github.com/rust-lang-nursery/rust-clippy
|
|
|
|
|
|
|
|
|
|
|
|
Initial implementation by Srijan Reddy (@srijanreddy98, #672).
|
|
fetch should use same hyper connector as import.
|
|
|
|
|
|
|
|
TCP sockets should attempt the non-blocking read in the main thread.
|
|
Do not use tokio_io::io:write_all().
Adds src/tokio_write.rs
|
|
|
|
|
|
|
|
This is a workaroud. Once the issue is resolved in Rust side, we should
remove it.
Fixes #895
|
|
|
|
Fixes #993
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Add errors::bad_resource()
* Move permission_denied() to errors.rs
* Make op_symlink's not_implemented() into a runtime panic.
|
|
|
|
|
|
This better disambiguates with the msg_generated.ts module, which in JS
we call "fbs", but would be better called "msg".
|
|
|
|
|