deno/tools
Andreu Botella ddbb7b83f2
feat(runtime): support classic workers for internal testing (#11338)
This commit implements classic workers, but only when the `--enable-testing-features-do-not-use` flag is provided. This change is not user facing. Classic workers are used extensively in WPT tests. The classic workers do not support loading from disk, and do not support TypeScript.

Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-08-16 14:29:54 +02:00
..
wpt feat(runtime): support classic workers for internal testing (#11338) 2021-08-16 14:29:54 +02:00
build_benchmark_jsons.js test(lsp): add benchmarking tests (#9586) 2021-02-25 16:14:17 +11:00
cut_a_release.md Rename extensions/ directory to ext/ (#11643) 2021-08-11 12:27:05 +02:00
flamebench.js flamebench: streamline profiling benches (#10121) 2021-04-26 16:41:53 +02:00
format.js chore: upgrade dprint 0.13.1 to fix CI. (#10513) 2021-05-06 13:22:24 +09:00
lint.js chore: move test files to testdata directory (#11601) 2021-08-11 10:20:47 -04:00
README.md flamebench: streamline profiling benches (#10121) 2021-04-26 16:41:53 +02:00
upload_wptfyi.js build: switch to wpt.fyi prod (#11201) 2021-07-01 15:44:44 +02:00
util.js chore: use local deno_std in tools scripts (#11122) 2021-06-26 02:02:31 +02:00
wpt.ts feat(runtime): support classic workers for internal testing (#11338) 2021-08-16 14:29:54 +02:00

Tools

Documentation for various tooling in support of Deno development.

format.js

This script will format the code (currently using dprint, rustfmt). It is a prerequisite to run this before code check in.

To run formatting:

deno run --allow-read --allow-write --allow-run --unstable ./tools/format.js

lint.js

This script will lint the code base (currently using dlint, clippy). It is a prerequisite to run this before code check in.

To run linting:

deno run --allow-read --allow-write --allow-run --unstable ./tools/lint.js

Tip: You can also use cargo to run the current or pending build of the deno executable

cargo run -- run --allow-read --allow-write --allow-run --unstable ./tools/<script>

flamebench.js

flamebench.js facilitates profiling and generating flamegraphs from benchmarks.

General usage:

 ./tools/flamebench.js
flamebench <bench_name> [bench_filter]

Available benches:
op_baseline
ser
de

To profile the op_baseline bench, run ./tools/flamebench.js op_baseline, this will run all 3 benches in `op_baseline.

Often when profiling/optimizing, you'll want to focus on a specific sub-bench, flamebench supports a bench/test filter arg like the regular cargo commands. So you can simply run ./tools/flamebench.js op_baseline bench_op_async or ./tools/flamebench.js op_baseline bench_op_nop to profile specific benches.

Tip: the [bench_filter] argument doesn't have to be an exact bench name, you can use a shorthand or a partial match to profile a group of benches, e.g: ./tools/flamebench.js de v8