1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-01 09:24:20 -04:00
denoland-deno/ext/web
Divy Srivastava 9b2b8df927
feat(ops): Fast zero copy string arguments (#16777)
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-12-02 05:29:15 +00:00
..
benches perf: use fast api for op_now (#15643) 2022-08-28 12:21:49 +05:30
00_infra.js perf(ops): Monomorphic sync op calls (#15337) 2022-08-11 15:56:56 +02:00
01_dom_exception.js fix(ext/web): align DOMException better with spec (#15097) 2022-07-20 10:12:18 +02:00
01_mimesniff.js cleanup(web, fetch): dedupe minesniff / "extract a MIME type" algorithm (#14044) 2022-03-20 14:31:12 +01:00
02_event.js perf(ext/websocket): skip Events constructor checks (#16365) 2022-12-01 20:05:32 +05:30
02_structured_clone.js fix(core): Don't override structured clone error messages from V8 (#13942) 2022-03-14 19:35:15 +01:00
02_timers.js perf(ext/web): optimize timer cancellation (#16316) 2022-10-17 16:59:16 +05:30
03_abort_signal.js experiment(ext/web): Don't expose event classes during the bootstrap phase (#16213) 2022-10-24 16:14:17 +02:00
04_global_interfaces.js experiment(ext/web): Don't expose event classes during the bootstrap phase (#16213) 2022-10-24 16:14:17 +02:00
05_base64.js perf(ops): Monomorphic sync op calls (#15337) 2022-08-11 15:56:56 +02:00
06_streams.js perf(runtime/spawn): collect output using op_read_all (#16596) 2022-11-15 14:06:52 +01:00
06_streams_types.d.ts chore: update copyright year (#13434) 2022-01-20 16:10:16 +09:00
08_text_encoding.js perf(web): optimize single pass utf8 decoding (#16593) 2022-11-11 20:07:18 +05:30
09_file.js perf(ops): Monomorphic sync op calls (#15337) 2022-08-11 15:56:56 +02:00
10_filereader.js perf(ext/web): add op_encode_binary_string (#16352) 2022-10-24 20:27:22 +02:00
11_blob_url.js perf(ops): Monomorphic sync op calls (#15337) 2022-08-11 15:56:56 +02:00
12_location.js chore: update copyright to 2022 (#13306) 2022-01-07 22:09:52 -05:00
13_message_port.js feat(ext/web): use ArrayBuffer.was_detached() (#16307) 2022-10-25 14:22:37 +02:00
14_compression.js perf(ops): Monomorphic sync op calls (#15337) 2022-08-11 15:56:56 +02:00
15_performance.js experiment(ext/web): Don't expose event classes during the bootstrap phase (#16213) 2022-10-24 16:14:17 +02:00
blob.rs feat(ops): Fast zero copy string arguments (#16777) 2022-12-02 05:29:15 +00:00
Cargo.toml chore: forward v1.28.3 release commit to main (#16884) 2022-12-01 22:46:27 +09:00
compression.rs feat(ops): Fast zero copy string arguments (#16777) 2022-12-02 05:29:15 +00:00
internal.d.ts experiment(ext/web): Don't expose event classes during the bootstrap phase (#16213) 2022-10-24 16:14:17 +02:00
lib.deno_web.d.ts fix(ext/web): fix typings for readable stream readers (#16191) 2022-11-30 16:24:13 +01:00
lib.rs feat(ops): Fast zero copy string arguments (#16777) 2022-12-02 05:29:15 +00:00
message_port.rs chore(web, worker): Use DetachedBuffer for postMessage ops (#15133) 2022-07-11 17:27:33 +02:00
README.md Rename extensions/ directory to ext/ (#11643) 2021-08-11 12:27:05 +02:00
timers.rs perf(ext/web): optimize timer cancellation (#16316) 2022-10-17 16:59:16 +05:30

deno web

Op crate that implements Event, TextEncoder, TextDecoder and File API (https://w3c.github.io/FileAPI).

Testing for text encoding is done via WPT in cli/.