@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.
Files changed (107) hide show
  1. package/README.md +1 -1
  2. package/crates/rplugin/README.md +6 -0
  3. package/crates/swc/src/config/array.json +29 -0
  4. package/crates/swc/src/config/issue-1532.json +11 -0
  5. package/crates/swc/src/config/object.json +9 -0
  6. package/crates/swc_atoms/words.txt +676 -0
  7. package/crates/swc_babel_ast/README.md +3 -0
  8. package/crates/swc_babel_compat/README.md +10 -0
  9. package/crates/swc_babel_visit/README.md +24 -0
  10. package/crates/swc_bundler/README.md +13 -0
  11. package/crates/swc_bundler/assets/a.js +7 -0
  12. package/crates/swc_bundler/assets/main.js +3 -0
  13. package/crates/swc_ecma_minifier/.eslintrc +47 -0
  14. package/crates/swc_ecma_minifier/README.md +41 -0
  15. package/crates/swc_ecma_minifier/package.json +21 -0
  16. package/crates/swc_ecma_minifier/src/lists/domprops.json +7771 -0
  17. package/crates/swc_ecma_minifier/src/lists/jsprops.json +317 -0
  18. package/crates/swc_ecma_parser/colors.js +68 -0
  19. package/crates/swc_ecma_preset_env/package.json +8 -0
  20. package/crates/swc_ecma_preset_env/src/corejs2/builtin.json +1660 -0
  21. package/crates/swc_ecma_preset_env/src/corejs3/compat.json +3096 -0
  22. package/crates/swc_ecma_preset_env/src/corejs3/entries.json +8321 -0
  23. package/crates/swc_ecma_preset_env/src/corejs3/modules-by-versions.json +350 -0
  24. package/crates/swc_ecma_preset_env/src/query.js +27 -0
  25. package/crates/swc_ecma_preset_env/src/transform_data.json +449 -0
  26. package/crates/swc_ecma_preset_env/src/transform_data_bugfixes.json +79 -0
  27. package/crates/swc_ecma_transforms/package.json +9 -0
  28. package/crates/swc_ecma_transforms_base/src/helpers/_apply_decorated_descriptor.js +24 -0
  29. package/crates/swc_ecma_transforms_base/src/helpers/_array_with_holes.js +3 -0
  30. package/crates/swc_ecma_transforms_base/src/helpers/_array_without_holes.js +9 -0
  31. package/crates/swc_ecma_transforms_base/src/helpers/_assert_this_initialized.js +7 -0
  32. package/crates/swc_ecma_transforms_base/src/helpers/_async_generator.js +96 -0
  33. package/crates/swc_ecma_transforms_base/src/helpers/_async_generator_delegate.js +51 -0
  34. package/crates/swc_ecma_transforms_base/src/helpers/_async_iterator.js +17 -0
  35. package/crates/swc_ecma_transforms_base/src/helpers/_async_to_generator.js +35 -0
  36. package/crates/swc_ecma_transforms_base/src/helpers/_await_async_generator.js +3 -0
  37. package/crates/swc_ecma_transforms_base/src/helpers/_await_value.js +3 -0
  38. package/crates/swc_ecma_transforms_base/src/helpers/_class_call_check.js +5 -0
  39. package/crates/swc_ecma_transforms_base/src/helpers/_class_check_private_static_access.js +1 -0
  40. package/crates/swc_ecma_transforms_base/src/helpers/_class_name_tdz_error.js +3 -0
  41. package/crates/swc_ecma_transforms_base/src/helpers/_class_private_field_destructure.js +25 -0
  42. package/crates/swc_ecma_transforms_base/src/helpers/_class_private_field_get.js +7 -0
  43. package/crates/swc_ecma_transforms_base/src/helpers/_class_private_field_loose_base.js +7 -0
  44. package/crates/swc_ecma_transforms_base/src/helpers/_class_private_field_set.js +14 -0
  45. package/crates/swc_ecma_transforms_base/src/helpers/_class_private_method_get.js +7 -0
  46. package/crates/swc_ecma_transforms_base/src/helpers/_class_private_method_set.js +3 -0
  47. package/crates/swc_ecma_transforms_base/src/helpers/_class_static_private_field_spec_get.js +7 -0
  48. package/crates/swc_ecma_transforms_base/src/helpers/_class_static_private_field_spec_set.js +12 -0
  49. package/crates/swc_ecma_transforms_base/src/helpers/_class_static_private_method_get.js +3 -0
  50. package/crates/swc_ecma_transforms_base/src/helpers/_construct.js +29 -0
  51. package/crates/swc_ecma_transforms_base/src/helpers/_create_class.js +15 -0
  52. package/crates/swc_ecma_transforms_base/src/helpers/_create_super.js +14 -0
  53. package/crates/swc_ecma_transforms_base/src/helpers/_decorate.js +420 -0
  54. package/crates/swc_ecma_transforms_base/src/helpers/_defaults.js +14 -0
  55. package/crates/swc_ecma_transforms_base/src/helpers/_define_enumerable_properties.js +22 -0
  56. package/crates/swc_ecma_transforms_base/src/helpers/_define_property.js +14 -0
  57. package/crates/swc_ecma_transforms_base/src/helpers/_extends.js +17 -0
  58. package/crates/swc_ecma_transforms_base/src/helpers/_get.js +19 -0
  59. package/crates/swc_ecma_transforms_base/src/helpers/_get_prototype_of.js +6 -0
  60. package/crates/swc_ecma_transforms_base/src/helpers/_inherits.js +14 -0
  61. package/crates/swc_ecma_transforms_base/src/helpers/_inherits_loose.js +5 -0
  62. package/crates/swc_ecma_transforms_base/src/helpers/_initializer_define_property.js +9 -0
  63. package/crates/swc_ecma_transforms_base/src/helpers/_initializer_warning_helper.js +3 -0
  64. package/crates/swc_ecma_transforms_base/src/helpers/_instanceof.js +7 -0
  65. package/crates/swc_ecma_transforms_base/src/helpers/_interop_require_default.js +5 -0
  66. package/crates/swc_ecma_transforms_base/src/helpers/_interop_require_wildcard.js +24 -0
  67. package/crates/swc_ecma_transforms_base/src/helpers/_is_native_function.js +3 -0
  68. package/crates/swc_ecma_transforms_base/src/helpers/_is_native_reflect_construct.js +11 -0
  69. package/crates/swc_ecma_transforms_base/src/helpers/_iterable_to_array.js +3 -0
  70. package/crates/swc_ecma_transforms_base/src/helpers/_iterable_to_array_limit.js +25 -0
  71. package/crates/swc_ecma_transforms_base/src/helpers/_iterable_to_array_limit_loose.js +11 -0
  72. package/crates/swc_ecma_transforms_base/src/helpers/_jsx.js +47 -0
  73. package/crates/swc_ecma_transforms_base/src/helpers/_new_arrow_check.js +5 -0
  74. package/crates/swc_ecma_transforms_base/src/helpers/_non_iterable_rest.js +3 -0
  75. package/crates/swc_ecma_transforms_base/src/helpers/_non_iterable_spread.js +3 -0
  76. package/crates/swc_ecma_transforms_base/src/helpers/_object_spread.js +18 -0
  77. package/crates/swc_ecma_transforms_base/src/helpers/_object_without_properties.js +18 -0
  78. package/crates/swc_ecma_transforms_base/src/helpers/_object_without_properties_loose.js +14 -0
  79. package/crates/swc_ecma_transforms_base/src/helpers/_possible_constructor_return.js +7 -0
  80. package/crates/swc_ecma_transforms_base/src/helpers/_read_only_error.js +3 -0
  81. package/crates/swc_ecma_transforms_base/src/helpers/_set.js +48 -0
  82. package/crates/swc_ecma_transforms_base/src/helpers/_set_prototype_of.js +8 -0
  83. package/crates/swc_ecma_transforms_base/src/helpers/_skip_first_generator_next.js +7 -0
  84. package/crates/swc_ecma_transforms_base/src/helpers/_sliced_to_array.js +3 -0
  85. package/crates/swc_ecma_transforms_base/src/helpers/_sliced_to_array_loose.js +3 -0
  86. package/crates/swc_ecma_transforms_base/src/helpers/_super_prop_base.js +8 -0
  87. package/crates/swc_ecma_transforms_base/src/helpers/_tagged_template_literal.js +11 -0
  88. package/crates/swc_ecma_transforms_base/src/helpers/_tagged_template_literal_loose.js +8 -0
  89. package/crates/swc_ecma_transforms_base/src/helpers/_throw.js +3 -0
  90. package/crates/swc_ecma_transforms_base/src/helpers/_to_array.js +3 -0
  91. package/crates/swc_ecma_transforms_base/src/helpers/_to_consumable_array.js +3 -0
  92. package/crates/swc_ecma_transforms_base/src/helpers/_to_primitive.js +12 -0
  93. package/crates/swc_ecma_transforms_base/src/helpers/_to_property_key.js +4 -0
  94. package/crates/swc_ecma_transforms_base/src/helpers/_type_of.js +3 -0
  95. package/crates/swc_ecma_transforms_base/src/helpers/_wrap_async_generator.js +5 -0
  96. package/crates/swc_ecma_transforms_base/src/helpers/_wrap_native_super.js +33 -0
  97. package/{plugin → crates/swc_plugin}/README.md +0 -0
  98. package/crates/testing_macros/README.md +3 -0
  99. package/crates/wasm/__tests__/error.js +11 -0
  100. package/crates/wasm/__tests__/simple.js +33 -0
  101. package/crates/wasm/example/index.js +47 -0
  102. package/crates/wasm/example/package.json +15 -0
  103. package/crates/wasm/example/readme.txt +21 -0
  104. package/crates/wasm/example/webpack.config.js +10 -0
  105. package/crates/wasm/package.json +5 -0
  106. package/cspell.json +1 -0
  107. package/package.json +14 -13
@@ -0,0 +1,3 @@
1
+ Rust representation of the Babel AST.
2
+
3
+ Definitions derived from this file: https://github.com/babel/babel/blob/main/packages/babel-types/src/ast-types/generated/index.ts
@@ -0,0 +1,10 @@
1
+ Convert swc AST to Babel AST.
2
+
3
+ ## Testing
4
+ To run tests
5
+
6
+ ```bash
7
+ cargo test
8
+ ```
9
+
10
+ For more information about writing tests, see [tests](tests).
@@ -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,13 @@
1
+ # swc_bundler
2
+
3
+ Bundler for the swc project.
4
+
5
+ ## Features
6
+
7
+ - Clean merging (generated code is easy to optimize)
8
+ - Parallel file loading
9
+ - Tree shaking
10
+ - Common js support (aka `require`)
11
+ - Circular imports
12
+
13
+ Tests live at `/spack`.
@@ -0,0 +1,7 @@
1
+ export const FOO = 1;
2
+
3
+
4
+ export class A {
5
+ foo() {
6
+ }
7
+ }
@@ -0,0 +1,3 @@
1
+ import { A, FOO } from './a';
2
+
3
+ console.log(A, FOO);
@@ -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
+ }