summaryrefslogtreecommitdiff
path: root/ext/web
AgeCommit message (Collapse)Author
2021-11-05fix: typings for BYOB stream readers (#12651)Leo Kettmeir
2021-11-03fix: Deno.emit crashes with BorrowMutError (#12627)Ryan Dahl
Warn on await_holding_refcell_ref clippy rule to avoid this in the future. Fixes #12453
2021-11-03feat(ext/web): BYOB support for ReadableStream (#12616)Leo Kettmeir
This commit introduces support for BYOB readers in the WHATWG Streams API implementation.
2021-11-02chore: update to Rust edition 2021 (#12578)Bartek Iwańczuk
2021-10-29fix(encoding): support additional encoding labels (#12586)Andreu Botella
2021-10-28fix(webidl): Don't throw when converting a detached buffer source (#12585)Andreu Botella
The Web IDL conversion to `BufferSource` and similar types shouldn't check whether the buffer is detached. In the case of `TextDecoder`, our implementation would still throw after the Web IDL conversions because we're creating a new `Uint8Array` from the buffer source's buffer, which throws if it's detached. This change also fixes this bug.
2021-10-29perf(encoding): avoid copying the input data in `TextDecoder` (#12573)Andreu Botella
The implementation of `TextDecoder` had a bug where it was copying the input data in every case. This change removes that copy in non-`SharedArrayBuffer` cases. Since passing a shared buffer source to Rust would fail, this copy of the input data was making `TextDecoder` work in cases where the input is shared. In order to avoid a breaking change, the copy is retained in those cases.
2021-10-25chore: bump crate version for 1.15.3 (#12531)Yoshiya Hinosawa
2021-10-21fix: declare web types as global (#12497)Bartek Iwańczuk
Co-authored-by: Feng Yu <F3n67u@outlook.com>
2021-10-18chore: release crates for v1.15.2 (#12478)Bartek Iwańczuk
2021-10-17fix(core): poll async ops eagerly (#12385)Bert Belder
Currently all async ops are polled lazily, which means that op initialization code is postponed until control is yielded to the event loop. This has some weird consequences, e.g. ```js let listener = Deno.listen(...); let conn_promise = listener.accept(); listener.close(); // `BadResource` is thrown. A reasonable error would be `Interrupted`. let conn = await conn_promise; ``` JavaScript promises are expected to be eagerly evaluated. This patch makes ops actually do that.
2021-10-12chore: bump crate version for 1.15.0 (#12406)Satya Rohith
2021-10-12chore: upgrade crates based on deno ast 0.3 (#12403)David Sherret
2021-10-08fix(ext/web): Format DOMException stack property (#12333)Kenta Moriuchi
2021-10-08refactor: deduplicate `defineEventHandler` util (#12367)Andreu Botella
2021-10-05chore: merge v1.14.3 into main (#12327)Bartek Iwańczuk
2021-10-03feat(web): Implement `DOMException`'s `stack` property. (#12294)Andreu Botella
As per WebIDL (https://heycam.github.io/webidl/#es-DOMException-specialness), if `Error` objects have a `stack` property, so should `DOMException` instances.
2021-10-01perf(web): optimize byteLowerCase() (#12282)Aaron O'Mullan
2021-09-30perf(web): ~400x faster http header trimming (#12277)Aaron O'Mullan
Use a regex substring match with a first/last char fastpath instead of 2 regex replaces. Roughly ~400x faster (423ms vs 0.7ms in profiled runs)
2021-09-29perf(web/Event): move last class field to constructor (#12265)Aaron O'Mullan
2021-09-28chore: bump crate versions for 1.14.2 (#12253)Aaron O'Mullan
2021-09-26perf(web): optimize Event constructor (#12231)Aaron O'Mullan
Assign in constructor instead of using class initializers which are currently ~10x slower
2021-09-25fix(ext/web): FileReader error messages (#12218)Dan Rose
2021-09-25fix(ext/webidl): correctly apply [SymbolToStringTag] to interfaces (#11851)李瑞丰
Co-authored-by: Luca Casonato <hello@lcas.dev> Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2021-09-22chore: bump crate versions for 1.14.1 (#12172)Kitson Kelly
2021-09-21perf(ext/web): optimize EventTarget (#12166)Aaron O'Mullan
and all its subclasses including `AbortSignal` ... Instead of storing associated data in a global `WeakMap` we store them as private attributes (via a Symbol) on the object instances
2021-09-21perf(web): optimize AbortController (#12165)Aaron O'Mullan
- Use regular class constructor and symbol "private" attributes - Lazy init Set of follower signals
2021-09-17chore: Remove unused deps from Cargo.toml files (#12106)Squirrel
2021-09-14chore: bump crate versions for 0.14 (#12072)David Sherret
2021-09-12fix: FileReader onevent attributes don't conform to spec (#11908)Feng Yu
2021-09-08fix(ext/web): Preserve stack traces for DOMExceptions (#11959)Nayeem Rahman
2021-09-08fix: 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-09-02feat(fmt): add basic JS doc formatting (#11902)David Sherret
2021-09-02chore: update dependencies (#11856)Luca Casonato
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-08-25feat: ArrayBuffer in structured clone transfer (#11840)Luca Casonato
2021-08-24fix: FileReader.readAsText compat (#11814)Luca Casonato
Fixes a WPT test.
2021-08-23chore: release crates for 1.13.2 (#11820)David Sherret
2021-08-16chore: release crates for 1.13.1 (#11729)David Sherret
2021-08-15refactor(ops): return BadResource errors in ResourceTable calls (#11710)Aaron O'Mullan
* refactor(ops): return BadResource errors in ResourceTable calls Instead of relying on callers to map Options to Results via `.ok_or_else(bad_resource_id)` at over 176 different call sites ...
2021-08-14cleanup(ext/web/BlobStore): avoid redundant Arc<Box<T>> alloc (#11693)Aaron O'Mullan
2021-08-13fix(ext/web): use Array primordials in MessagePort (#11680)Divy Srivastava
2021-08-12fix: Blob#slice arguments should be optional (#11665)Luca Casonato
2021-08-11Rename extensions/ directory to ext/ (#11643)Ryan Dahl