mirror of
https://github.com/denoland/deno.git
synced 2025-08-03 18:38:33 +00:00

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
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
}
```
11 lines
336 B
Text
11 lines
336 B
Text
=== Optimizer Dump ===
|
|
returns_result: true
|
|
has_ref_opstate: true
|
|
has_rc_opstate: false
|
|
has_fast_callback_option: false
|
|
needs_fast_callback_option: false
|
|
fast_result: Some(Void)
|
|
fast_parameters: [V8Value, SeqOneByteString, Bool]
|
|
transforms: {1: Transform { kind: SeqOneByteString(Ref), index: 1 }}
|
|
is_async: false
|
|
fast_compatible: true
|