Matt Mastracci

Results 100 issues of Matt Mastracci

We've been struggling to get a reliable way to initialize the v8 platform that properly supports PKU. `deno_core` is a good place to challenge this problem and create a solution...

``` #[op2(fast)] pub fn op_v8slice_store_32( #[state] test_data: &mut TestData, #[string] name: String, #[buffer] data: V8Slice, ) { test_data.insert(name, data); } ``` ``` mismatched types expected struct `V8Slice` found struct `deno_core::v8::Local

Phase 1: - [x] unrefOp -> unrefPromise to avoid complex accounting - [x] Replace old op tracker with new tracker (#295) - [x] Skip scope for op dispatch where possible...

This op could be re-written to throw errors rather than using the error callback, which would remove one source of op re-entrancy. Note that because the error callback is optional,...

We should allow for opt-in range-checked arguments: integer only, positive integer only, integer range, etc.

We've wallpapered over the problem a bit by fixing #313 but it still exists in a slightly different form: if a promise ID gets reused after 32-bit rollover, we can...

We can allow async ops to return values requiring a scope by creating a ScopeFunction return trait. ``` trait ScopeFunction: for) -> v8::Local) -> v8::Local

ops

Need to document: - [ ] Which of #[smi]/#[number]/#[bigint] to choose for 64-bit numbers - [ ] serde_json::Value - [ ] Buffer type choices, tradeoffs - [x] async/lazy/deferred

ops

`run_test2` currently forces fastcalls by running the test 10,000 times. We can instead use the v8 internals to force a fastcall: ``` %PrepareFunctionForOptimization({op}); {call}; %OptimizeFunctionOnNextCall({op}); {call}; ``` See `benches/ops/sync.rs` for...

ops

`op2` strings are faster in every case other than LARGE_1000000 (1,000,000 ASCII characters). We need to investigate why. ``` test baseline ... bench: 878 ns/iter (+/- 96) test bench_op_option_u32 ......

ops