Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-12-02 | feat(ops): Fast zero copy string arguments (#16777) | Divy Srivastava | |
Uses SeqOneByteString optimization to do zero-copy `&str` arguments in fast calls. - [x] Depends on https://github.com/denoland/rusty_v8/pull/1129 - [x] Depends on https://chromium-review.googlesource.com/c/v8/v8/+/4036884 - [x] Disable in async ops - [x] Make it work with owned `String` with an extra alloc in fast path. - [x] Support `Cow<'_, str>`. Owned for slow case, Borrowed for fast case ```rust #[op] fn op_string_len(s: &str) -> u32 { str.len() as u32 } ``` | |||
2022-05-13 | chore(runtime): Make some ops in ext and runtime infallible. (#14589) | Andreu Botella | |
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com> | |||
2022-03-14 | feat(ops): custom arity (#13949) | Aaron O'Mullan | |
Also cleanup & drop ignored wildcard op-args | |||
2022-03-14 | feat(core): codegen ops (#13861) | Divy Srivastava | |
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com> | |||
2021-09-08 | fix: a `Request` whose URL is a revoked blob URL should still fetch (#11947) | Andreu Botella | |
In the spec, a URL record has an associated "blob URL entry", which for `blob:` URLs is populated during parsing to contain a reference to the `Blob` object that backs that object URL. It is this blob URL entry that the `fetch` API uses to resolve an object URL. Therefore, since the `Request` constructor parses URL inputs, it will have an associated blob URL entry which will be used when fetching, even if the object URL has been revoked since the construction of the `Request` object. (The `Request` constructor takes the URL as a string and parses it, so the object URL must be live at the time it is called.) This PR adds a new `blobFromObjectUrl` JS function (backed by a new `op_blob_from_object_url` op) that, if the URL is a valid object URL, returns a new `Blob` object whose parts are references to the same Rust `BlobPart`s used by the original `Blob` object. It uses this function to add a new `blobUrlEntry` field to inner requests, which will be `null` or such a `Blob`, and then uses `Blob.prototype.stream()` as the response's body. As a result of this, the `blob:` URL resolution from `op_fetch` is now useless, and has been removed. | |||
2021-08-14 | cleanup(ext/web/BlobStore): avoid redundant Arc<Box<T>> alloc (#11693) | Aaron O'Mullan | |
2021-08-11 | Rename extensions/ directory to ext/ (#11643) | Ryan Dahl | |