Skip to content

Commit 8cdc28c

Browse files
authoredDec 2, 2022
feat(css/plugin): Prepare Wasm plugins (#6567)
1 parent ab2e19b commit 8cdc28c

File tree

7 files changed

+23
-16
lines changed

7 files changed

+23
-16
lines changed
 

‎.github/workflows/CI.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -660,7 +660,7 @@ jobs:
660660
- name: Run cargo test (plugin)
661661
if: matrix.settings.crate == 'swc_plugin_runner'
662662
run: |
663-
cargo test -p swc_plugin_runner --release --features plugin_transform_schema_v1 --features rkyv-impl
663+
cargo test -p swc_plugin_runner --release --features plugin_transform_schema_v1 --features rkyv-impl --features ecma --features css
664664
665665
- name: Run cargo test (swc_ecma_minifier)
666666
if: matrix.settings.crate == 'swc_ecma_minifier'

‎Cargo.lock

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎crates/swc/Cargo.toml

+5-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ debug = ["swc_ecma_visit/debug"]
2828
default = ["es3"]
2929
es3 = []
3030
node = ["napi", "napi-derive"]
31-
plugin = ["swc_plugin_runner/rkyv-impl", "swc_plugin_proxy/plugin-rt"]
31+
plugin = [
32+
"swc_plugin_runner/ecma",
33+
"swc_plugin_runner/rkyv-impl",
34+
"swc_plugin_proxy/plugin-rt",
35+
]
3236
plugin-bytecheck = [
3337
"swc_plugin_runner/rkyv-bytecheck-impl",
3438
"swc_plugin_proxy/plugin-bytecheck-rt",

‎crates/swc_plugin_runner/Cargo.toml

+16-14
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,18 @@ memory_cache = []
2222
plugin_transform_schema_v1 = ["swc_common/plugin_transform_schema_v1"]
2323
plugin_transform_schema_vtest = ["swc_common/plugin_transform_schema_vtest"]
2424

25+
# Enable ECMASCript support
26+
ecma = ["swc_ecma_ast/rkyv-impl"]
27+
# Enable CSS support
28+
css = ["swc_css_ast/rkyv-impl"]
29+
2530
__rkyv = []
2631
rkyv-bytecheck-impl = [
2732
"__rkyv",
2833
"swc_common/plugin-bytecheck-rt",
2934
"swc_plugin_proxy/plugin-bytecheck-rt",
30-
"swc_ecma_ast/rkyv-bytecheck-impl",
31-
]
32-
rkyv-impl = [
33-
"__rkyv",
34-
"swc_common/plugin-rt",
35-
"swc_plugin_proxy/plugin-rt",
36-
"swc_ecma_ast/rkyv-impl",
3735
]
36+
rkyv-impl = ["__rkyv", "swc_common/plugin-rt", "swc_plugin_proxy/plugin-rt"]
3837

3938
[dependencies]
4039
anyhow = "1.0.42"
@@ -46,11 +45,11 @@ serde_json = "1.0.64"
4645
swc_common = { version = "0.29.17", path = "../swc_common", features = [
4746
"concurrent",
4847
] }
49-
swc_ecma_ast = { version = "0.95.1", path = "../swc_ecma_ast" }
50-
swc_plugin_proxy = { version = "0.23.1", path = "../swc_plugin_proxy" }
51-
52-
tracing = "0.1.32"
53-
wasmer = { version = "2.3.0", default-features = false }
48+
swc_css_ast = { version = "0.128.1", path = "../swc_css_ast", optional = true }
49+
swc_ecma_ast = { version = "0.95.1", path = "../swc_ecma_ast", optional = true }
50+
swc_plugin_proxy = { version = "0.23.0", path = "../swc_plugin_proxy" }
51+
tracing = "0.1.32"
52+
wasmer = { version = "2.3.0", default-features = false }
5453
wasmer-wasi = { version = "2.3.0", default-features = false }
5554

5655
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
@@ -67,9 +66,12 @@ swc_ecma_visit = { version = "0.81.1", path = "../swc_ecma_visit" }
6766
swc_node_base = { version = "0.5.8", path = "../swc_node_base" }
6867
testing = { version = "0.31.18", path = "../testing" }
6968
# This allows we can run non-wasm32 target build command while some pkg select features for wasmer/js omits its transitive deps
70-
wasmer = "2.3.0"
69+
swc_ecma_ast = { version = "0.95.1", path = "../swc_ecma_ast", feature = [
70+
"rkyv-impl",
71+
] }
72+
wasmer = "2.3.0"
7173
wasmer-wasi = "2.3.0"
7274

7375
[[bench]]
7476
harness = false
75-
name = "invoke"
77+
name = "ecma_invoke"

1 commit comments

Comments
 (1)

github-actions[bot] commented on Dec 2, 2022

@github-actions[bot]

Benchmark

Benchmark suite Current: 8cdc28c Previous: 4af52c7 Ratio
es/full/bugs-1 358089 ns/iter (± 76574) 336470 ns/iter (± 26017) 1.06
es/full/minify/libraries/antd 2276050437 ns/iter (± 26620525) 1977533977 ns/iter (± 22733268) 1.15
es/full/minify/libraries/d3 508166180 ns/iter (± 21506236) 440415931 ns/iter (± 18969435) 1.15
es/full/minify/libraries/echarts 1903803414 ns/iter (± 55789374) 1727554504 ns/iter (± 44917915) 1.10
es/full/minify/libraries/jquery 133132505 ns/iter (± 9621702) 111171313 ns/iter (± 2980819) 1.20
es/full/minify/libraries/lodash 155105922 ns/iter (± 9825492) 140959178 ns/iter (± 2959741) 1.10
es/full/minify/libraries/moment 74941028 ns/iter (± 2207589) 70889602 ns/iter (± 1540179) 1.06
es/full/minify/libraries/react 24320886 ns/iter (± 939304) 22869963 ns/iter (± 546241) 1.06
es/full/minify/libraries/terser 396720397 ns/iter (± 7228508) 336309217 ns/iter (± 21053548) 1.18
es/full/minify/libraries/three 696597179 ns/iter (± 20296114) 616913334 ns/iter (± 8726645) 1.13
es/full/minify/libraries/typescript 4131786600 ns/iter (± 84194408) 3668020802 ns/iter (± 29183046) 1.13
es/full/minify/libraries/victory 999228771 ns/iter (± 34553774) 903282720 ns/iter (± 21075307) 1.11
es/full/minify/libraries/vue 198179218 ns/iter (± 7050970) 168089590 ns/iter (± 8536610) 1.18
es/full/codegen/es3 36583 ns/iter (± 3662) 33481 ns/iter (± 579) 1.09
es/full/codegen/es5 34833 ns/iter (± 1741) 33410 ns/iter (± 526) 1.04
es/full/codegen/es2015 33796 ns/iter (± 2025) 33423 ns/iter (± 463) 1.01
es/full/codegen/es2016 34111 ns/iter (± 1452) 33390 ns/iter (± 977) 1.02
es/full/codegen/es2017 33793 ns/iter (± 2914) 32839 ns/iter (± 1105) 1.03
es/full/codegen/es2018 33757 ns/iter (± 993) 33307 ns/iter (± 1154) 1.01
es/full/codegen/es2019 33634 ns/iter (± 2286) 33400 ns/iter (± 511) 1.01
es/full/codegen/es2020 33719 ns/iter (± 1219) 33420 ns/iter (± 342) 1.01
es/full/all/es3 195636704 ns/iter (± 5400805) 188046506 ns/iter (± 8881474) 1.04
es/full/all/es5 185522466 ns/iter (± 5742440) 179533046 ns/iter (± 8181022) 1.03
es/full/all/es2015 148209196 ns/iter (± 5570362) 144321531 ns/iter (± 8234440) 1.03
es/full/all/es2016 152713049 ns/iter (± 9353884) 143821601 ns/iter (± 20042934) 1.06
es/full/all/es2017 151192116 ns/iter (± 8752166) 141150194 ns/iter (± 4526075) 1.07
es/full/all/es2018 150219541 ns/iter (± 9058792) 139321767 ns/iter (± 9122253) 1.08
es/full/all/es2019 145006616 ns/iter (± 7534774) 150396187 ns/iter (± 10414466) 0.96
es/full/all/es2020 140259464 ns/iter (± 10692626) 145464943 ns/iter (± 13307571) 0.96
es/full/parser 733676 ns/iter (± 74048) 708816 ns/iter (± 41381) 1.04
es/full/base/fixer 26974 ns/iter (± 1913) 25966 ns/iter (± 935) 1.04
es/full/base/resolver_and_hygiene 95821 ns/iter (± 4365) 91685 ns/iter (± 3209) 1.05
serialization of ast node 219 ns/iter (± 24) 209 ns/iter (± 5) 1.05
serialization of serde 228 ns/iter (± 22) 218 ns/iter (± 10) 1.05

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.