@swc/core 1.2.107 → 1.2.108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/crates/rplugin/README.md +6 -0
- package/crates/swc/src/config/array.json +29 -0
- package/crates/swc/src/config/issue-1532.json +11 -0
- package/crates/swc/src/config/object.json +9 -0
- package/crates/swc_atoms/words.txt +676 -0
- package/crates/swc_babel_ast/README.md +3 -0
- package/crates/swc_babel_compat/README.md +10 -0
- package/crates/swc_babel_visit/README.md +24 -0
- package/crates/swc_bundler/README.md +13 -0
- package/crates/swc_bundler/assets/a.js +7 -0
- package/crates/swc_bundler/assets/main.js +3 -0
- package/crates/swc_ecma_minifier/.eslintrc +47 -0
- package/crates/swc_ecma_minifier/README.md +41 -0
- package/crates/swc_ecma_minifier/package.json +21 -0
- package/crates/swc_ecma_minifier/src/lists/domprops.json +7771 -0
- package/crates/swc_ecma_minifier/src/lists/jsprops.json +317 -0
- package/crates/swc_ecma_parser/colors.js +68 -0
- package/crates/swc_ecma_preset_env/package.json +8 -0
- package/crates/swc_ecma_preset_env/src/corejs2/builtin.json +1660 -0
- package/crates/swc_ecma_preset_env/src/corejs3/compat.json +3096 -0
- package/crates/swc_ecma_preset_env/src/corejs3/entries.json +8321 -0
- package/crates/swc_ecma_preset_env/src/corejs3/modules-by-versions.json +350 -0
- package/crates/swc_ecma_preset_env/src/query.js +27 -0
- package/crates/swc_ecma_preset_env/src/transform_data.json +449 -0
- package/crates/swc_ecma_preset_env/src/transform_data_bugfixes.json +79 -0
- package/crates/swc_ecma_transforms/package.json +9 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_apply_decorated_descriptor.js +24 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_array_with_holes.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_array_without_holes.js +9 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_assert_this_initialized.js +7 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_async_generator.js +96 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_async_generator_delegate.js +51 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_async_iterator.js +17 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_async_to_generator.js +35 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_await_async_generator.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_await_value.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_class_call_check.js +5 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_class_check_private_static_access.js +1 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_class_name_tdz_error.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_class_private_field_destructure.js +25 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_class_private_field_get.js +7 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_class_private_field_loose_base.js +7 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_class_private_field_set.js +14 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_class_private_method_get.js +7 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_class_private_method_set.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_class_static_private_field_spec_get.js +7 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_class_static_private_field_spec_set.js +12 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_class_static_private_method_get.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_construct.js +29 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_create_class.js +15 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_create_super.js +14 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_decorate.js +420 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_defaults.js +14 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_define_enumerable_properties.js +22 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_define_property.js +14 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_extends.js +17 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_get.js +19 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_get_prototype_of.js +6 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_inherits.js +14 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_inherits_loose.js +5 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_initializer_define_property.js +9 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_initializer_warning_helper.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_instanceof.js +7 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_interop_require_default.js +5 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_interop_require_wildcard.js +24 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_is_native_function.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_is_native_reflect_construct.js +11 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_iterable_to_array.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_iterable_to_array_limit.js +25 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_iterable_to_array_limit_loose.js +11 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_jsx.js +47 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_new_arrow_check.js +5 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_non_iterable_rest.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_non_iterable_spread.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_object_spread.js +18 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_object_without_properties.js +18 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_object_without_properties_loose.js +14 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_possible_constructor_return.js +7 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_read_only_error.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_set.js +48 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_set_prototype_of.js +8 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_skip_first_generator_next.js +7 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_sliced_to_array.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_sliced_to_array_loose.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_super_prop_base.js +8 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_tagged_template_literal.js +11 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_tagged_template_literal_loose.js +8 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_throw.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_to_array.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_to_consumable_array.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_to_primitive.js +12 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_to_property_key.js +4 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_type_of.js +3 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_wrap_async_generator.js +5 -0
- package/crates/swc_ecma_transforms_base/src/helpers/_wrap_native_super.js +33 -0
- package/{plugin → crates/swc_plugin}/README.md +0 -0
- package/crates/testing_macros/README.md +3 -0
- package/crates/wasm/__tests__/error.js +11 -0
- package/crates/wasm/__tests__/simple.js +33 -0
- package/crates/wasm/example/index.js +47 -0
- package/crates/wasm/example/package.json +15 -0
- package/crates/wasm/example/readme.txt +21 -0
- package/crates/wasm/example/webpack.config.js +10 -0
- package/crates/wasm/package.json +5 -0
- package/cspell.json +1 -0
- package/package.json +14 -13
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Visitor pattern implementation for Babel AST.
|
|
2
|
+
|
|
3
|
+
### Example
|
|
4
|
+
|
|
5
|
+
```rust
|
|
6
|
+
// Visit all Identifier nodes in the Babel AST and change the optional field to
|
|
7
|
+
// Some(true) for each of them.
|
|
8
|
+
|
|
9
|
+
use swc_babel_visit::{VisitMut, VisitMutWith};
|
|
10
|
+
use swc_babel_ast::{Identifier, File};
|
|
11
|
+
|
|
12
|
+
struct Visitor;
|
|
13
|
+
|
|
14
|
+
impl VisitMut for Visitor {
|
|
15
|
+
fn visit_mut_identifier(&mut self, node: &mut Identifier) {
|
|
16
|
+
node.optional = Some(true);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
let ast: File = get_babel_ast();
|
|
21
|
+
let mut v = Visitor {};
|
|
22
|
+
ast.visit_mut_with(&mut v);
|
|
23
|
+
```
|
|
24
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"parser": "babel-eslint",
|
|
3
|
+
"rules": {
|
|
4
|
+
"indent": [
|
|
5
|
+
"error",
|
|
6
|
+
4
|
|
7
|
+
],
|
|
8
|
+
"semi": [
|
|
9
|
+
"error",
|
|
10
|
+
"always"
|
|
11
|
+
],
|
|
12
|
+
"space-unary-ops": 2,
|
|
13
|
+
"no-undef": "off",
|
|
14
|
+
"consistent-return": "off",
|
|
15
|
+
"no-prototype-builtins": "off",
|
|
16
|
+
"no-cond-assign": "off",
|
|
17
|
+
"multiline-ternary": [
|
|
18
|
+
"error",
|
|
19
|
+
"always-multiline"
|
|
20
|
+
],
|
|
21
|
+
"object-property-newline": [
|
|
22
|
+
"error",
|
|
23
|
+
{
|
|
24
|
+
"allowAllPropertiesOnSameLine": false
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"function-call-argument-newline": [
|
|
28
|
+
"error",
|
|
29
|
+
"always"
|
|
30
|
+
],
|
|
31
|
+
"object-curly-newline": [
|
|
32
|
+
"error",
|
|
33
|
+
"always"
|
|
34
|
+
],
|
|
35
|
+
"comma-dangle": [
|
|
36
|
+
"error",
|
|
37
|
+
"always"
|
|
38
|
+
],
|
|
39
|
+
"function-paren-newline": [
|
|
40
|
+
"error",
|
|
41
|
+
"always"
|
|
42
|
+
],
|
|
43
|
+
"no-trailing-spaces": [
|
|
44
|
+
"error"
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Minifier
|
|
2
|
+
|
|
3
|
+
EcmaScript minifier for the swc project. This is basically a port of terser.
|
|
4
|
+
|
|
5
|
+
# Note
|
|
6
|
+
|
|
7
|
+
Currently name mangler is very simple. To focus on creating a MVP, I (kdy1) will use simple logic for name mangler and implement the content-aware name mangler after publishing first non-beta version.
|
|
8
|
+
|
|
9
|
+
## Testing
|
|
10
|
+
|
|
11
|
+
### Real-library tests
|
|
12
|
+
|
|
13
|
+
You can use vscode to see diffs. Select a file from `tests/projects/output` and select the corresponding file from `tests/projects/refs`. Then you can right click to see an option to open diff.
|
|
14
|
+
|
|
15
|
+
#### Splitting a library test
|
|
16
|
+
|
|
17
|
+
Extracting only subset from a library test makes development much easier.
|
|
18
|
+
|
|
19
|
+
Split status:
|
|
20
|
+
|
|
21
|
+
- [ ] angular-1.2.5
|
|
22
|
+
- [x] backbone-1.1.0
|
|
23
|
+
- [ ] jquery-1.9.1
|
|
24
|
+
- [ ] jquery.mobile-1.4.2
|
|
25
|
+
- [ ] mootools-1.4.5
|
|
26
|
+
- [x] underscore-1.5.2
|
|
27
|
+
- [ ] yui-3.12.0
|
|
28
|
+
|
|
29
|
+
### Tests from terser
|
|
30
|
+
|
|
31
|
+
Tests ported from terser has
|
|
32
|
+
|
|
33
|
+
- input.js
|
|
34
|
+
- config.json
|
|
35
|
+
- mangle.json (if name mangling is enabled)
|
|
36
|
+
- output.js (if exists and can be modified if our one is better or due to lack of frequency-aware base54)
|
|
37
|
+
- output.terser.js (if exists)
|
|
38
|
+
|
|
39
|
+
#### Copying tests
|
|
40
|
+
|
|
41
|
+
Replace the content of `terser/test/compress.js` with it of `scripts/compress.js` and run `npm run test:compress`
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "minifier",
|
|
3
|
+
"private": true,
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "EcmaScript minifier for the swc project. This is basically a port of terser.",
|
|
6
|
+
"main": "lab.js",
|
|
7
|
+
"directories": {
|
|
8
|
+
"test": "tests"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [],
|
|
14
|
+
"author": "",
|
|
15
|
+
"license": "ISC",
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"antd": "^4.16.13",
|
|
18
|
+
"babel-eslint": "^10.1.0",
|
|
19
|
+
"eslint": "^7.29.0"
|
|
20
|
+
}
|
|
21
|
+
}
|