Skip to content

Commit

Permalink
fix(es/compat): Remove wrong logic for object patterns in `object_res…
Browse files Browse the repository at this point in the history
…t` (#7788)

**Related issue:**

 - Closes #7776
  • Loading branch information
kdy1 committed Aug 17, 2023
1 parent 0d036b4 commit 3766a7c
Show file tree
Hide file tree
Showing 42 changed files with 1,349 additions and 1,249 deletions.
19 changes: 19 additions & 0 deletions crates/swc/tests/fixture/issues-7xxx/7776/input/.swcrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"jsc": {
"parser": {
"syntax": "ecmascript",
"jsx": false
},
"target": "es5",
"loose": true,
"minify": {
"compress": false,
"mangle": false
}
},
"module": {
"type": "es6"
},
"minify": false,
"isModule": true
}
6 changes: 6 additions & 0 deletions crates/swc/tests/fixture/issues-7xxx/7776/input/1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
function fn([
{ foo, ...flags },
{ bar }
]) {
console.log(flags.rangeChanged);
}
7 changes: 7 additions & 0 deletions crates/swc/tests/fixture/issues-7xxx/7776/output/1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
function fn(_param) {
var foo = _param[0].foo, bar = _param[1].bar, flags = _object_without_properties_loose(_param[0], [
"foo"
]);
console.log(flags.rangeChanged);
}
19 changes: 19 additions & 0 deletions crates/swc/tests/fixture/issues-7xxx/7819/input/.swcrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"jsc": {
"parser": {
"syntax": "ecmascript",
"jsx": false
},
"target": "es5",
"loose": false,
"minify": {
"compress": false,
"mangle": false
}
},
"module": {
"type": "es6"
},
"minify": false,
"isModule": true
}
8 changes: 8 additions & 0 deletions crates/swc/tests/fixture/issues-7xxx/7819/input/1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const listSystem = ([
a,
{ b },
{ c, ...d },
{ e },
]) => {

}
7 changes: 7 additions & 0 deletions crates/swc/tests/fixture/issues-7xxx/7819/output/1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
var listSystem = function(_param) {
var _$_param = _sliced_to_array(_param, 4), a = _$_param[0], b = _$_param[1].b, c = _$_param[2].c, e = _$_param[3].e, d = _object_without_properties(_param[2], [
"c"
]);
};
2 changes: 2 additions & 0 deletions crates/swc_ecma_transforms_compat/src/es2018/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ use swc_ecma_visit::Fold;
pub use self::object_rest_spread::object_rest_spread;
use crate::regexp::{self, regexp};

mod object_rest;
pub mod object_rest_spread;
mod object_spread;

pub fn es2018(c: Config) -> impl Fold {
chain!(
Expand Down

1 comment on commit 3766a7c

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: 3766a7c Previous: 04921f3 Ratio
es/full/bugs-1 286839 ns/iter (± 4443) 290245 ns/iter (± 8417) 0.99
es/full/minify/libraries/antd 1329731362 ns/iter (± 11252319) 1324895948 ns/iter (± 14357310) 1.00
es/full/minify/libraries/d3 282376631 ns/iter (± 3658050) 278512893 ns/iter (± 2012392) 1.01
es/full/minify/libraries/echarts 1062696736 ns/iter (± 11457907) 1058004075 ns/iter (± 6635286) 1.00
es/full/minify/libraries/jquery 85084248 ns/iter (± 180263) 84625550 ns/iter (± 249041) 1.01
es/full/minify/libraries/lodash 98819869 ns/iter (± 277500) 98582070 ns/iter (± 312744) 1.00
es/full/minify/libraries/moment 49961158 ns/iter (± 90444) 49883600 ns/iter (± 65555) 1.00
es/full/minify/libraries/react 18057998 ns/iter (± 18926) 17995384 ns/iter (± 34712) 1.00
es/full/minify/libraries/terser 219592298 ns/iter (± 856112) 218620627 ns/iter (± 2133765) 1.00
es/full/minify/libraries/three 384714725 ns/iter (± 2058930) 384061854 ns/iter (± 3392862) 1.00
es/full/minify/libraries/typescript 2672267565 ns/iter (± 10841699) 2653312983 ns/iter (± 13652325) 1.01
es/full/minify/libraries/victory 580117099 ns/iter (± 5730054) 569613220 ns/iter (± 2746258) 1.02
es/full/minify/libraries/vue 120860051 ns/iter (± 668720) 120440646 ns/iter (± 330273) 1.00
es/full/codegen/es3 34549 ns/iter (± 47) 34272 ns/iter (± 109) 1.01
es/full/codegen/es5 34531 ns/iter (± 138) 34296 ns/iter (± 85) 1.01
es/full/codegen/es2015 34480 ns/iter (± 128) 34199 ns/iter (± 82) 1.01
es/full/codegen/es2016 34450 ns/iter (± 95) 34164 ns/iter (± 61) 1.01
es/full/codegen/es2017 34542 ns/iter (± 63) 34164 ns/iter (± 66) 1.01
es/full/codegen/es2018 34374 ns/iter (± 124) 34210 ns/iter (± 69) 1.00
es/full/codegen/es2019 34529 ns/iter (± 126) 34179 ns/iter (± 84) 1.01
es/full/codegen/es2020 34499 ns/iter (± 107) 34205 ns/iter (± 127) 1.01
es/full/all/es3 166774930 ns/iter (± 1760351) 168165178 ns/iter (± 1532182) 0.99
es/full/all/es5 159402412 ns/iter (± 1291786) 160396385 ns/iter (± 613749) 0.99
es/full/all/es2015 119282165 ns/iter (± 1283627) 119305615 ns/iter (± 1005300) 1.00
es/full/all/es2016 119158669 ns/iter (± 714347) 118735276 ns/iter (± 780053) 1.00
es/full/all/es2017 118066499 ns/iter (± 818082) 118027028 ns/iter (± 464716) 1.00
es/full/all/es2018 115652690 ns/iter (± 624789) 116091281 ns/iter (± 467666) 1.00
es/full/all/es2019 115247115 ns/iter (± 691107) 115681174 ns/iter (± 579658) 1.00
es/full/all/es2020 110169684 ns/iter (± 599516) 111102166 ns/iter (± 767164) 0.99
es/full/parser 485816 ns/iter (± 4889) 489550 ns/iter (± 5484) 0.99
es/full/base/fixer 18627 ns/iter (± 106) 19070 ns/iter (± 340) 0.98
es/full/base/resolver_and_hygiene 79920 ns/iter (± 226) 80636 ns/iter (± 269) 0.99
serialization of serde 290 ns/iter (± 0) 290 ns/iter (± 0) 1
css/minify/libraries/bootstrap 29465014 ns/iter (± 113581) 28598691 ns/iter (± 291168) 1.03
css/visitor/compare/clone 1839233 ns/iter (± 8121) 1642216 ns/iter (± 9842) 1.12
css/visitor/compare/visit_mut_span 1964988 ns/iter (± 6280) 1772012 ns/iter (± 5516) 1.11
css/visitor/compare/visit_mut_span_panic 2055110 ns/iter (± 5246) 1846461 ns/iter (± 4977) 1.11
css/visitor/compare/fold_span 2907054 ns/iter (± 9569) 2596127 ns/iter (± 20242) 1.12
css/visitor/compare/fold_span_panic 3105780 ns/iter (± 22730) 2762385 ns/iter (± 16789) 1.12
css/lexer/bootstrap_5_1_3 4470285 ns/iter (± 4908) 4557518 ns/iter (± 39640) 0.98
css/lexer/foundation_6_7_4 3769100 ns/iter (± 6213) 3825223 ns/iter (± 5001) 0.99
css/lexer/tailwind_3_1_1 716660 ns/iter (± 567) 726238 ns/iter (± 1766) 0.99
css/parser/bootstrap_5_1_3 19256261 ns/iter (± 64404) 18806602 ns/iter (± 47455) 1.02
css/parser/foundation_6_7_4 15466825 ns/iter (± 21061) 15121745 ns/iter (± 17710) 1.02
css/parser/tailwind_3_1_1 2968021 ns/iter (± 3294) 2994451 ns/iter (± 4386) 0.99
es/codegen/colors 726474 ns/iter (± 396165) 738620 ns/iter (± 403852) 0.98
es/codegen/large 2912785 ns/iter (± 1532892) 3146420 ns/iter (± 1667474) 0.93
es/codegen/with-parser/colors 46281 ns/iter (± 135) 45353 ns/iter (± 448) 1.02
es/codegen/with-parser/large 488569 ns/iter (± 445) 486254 ns/iter (± 1387) 1.00
es/minify/libraries/antd 1164267533 ns/iter (± 15444887) 1159086074 ns/iter (± 10494281) 1.00
es/minify/libraries/d3 243230501 ns/iter (± 992170) 242810713 ns/iter (± 1345836) 1.00
es/minify/libraries/echarts 922787511 ns/iter (± 9527834) 915608812 ns/iter (± 2316819) 1.01
es/minify/libraries/jquery 74459515 ns/iter (± 160540) 74246479 ns/iter (± 127988) 1.00
es/minify/libraries/lodash 89136558 ns/iter (± 235944) 88485017 ns/iter (± 302840) 1.01
es/minify/libraries/moment 43934091 ns/iter (± 67386) 43810572 ns/iter (± 80020) 1.00
es/minify/libraries/react 16174887 ns/iter (± 70895) 16085807 ns/iter (± 45735) 1.01
es/minify/libraries/terser 189480013 ns/iter (± 741215) 188243620 ns/iter (± 625855) 1.01
es/minify/libraries/three 326133320 ns/iter (± 1705496) 324343965 ns/iter (± 1744746) 1.01
es/minify/libraries/typescript 2293086208 ns/iter (± 8900333) 2289513036 ns/iter (± 10763059) 1.00
es/minify/libraries/victory 483053318 ns/iter (± 3048788) 487441752 ns/iter (± 4537643) 0.99
es/minify/libraries/vue 108175881 ns/iter (± 216779) 107814619 ns/iter (± 237923) 1.00
es/visitor/compare/clone 1962534 ns/iter (± 4432) 1967287 ns/iter (± 6617) 1.00
es/visitor/compare/visit_mut_span 2281414 ns/iter (± 7014) 2277181 ns/iter (± 15836) 1.00
es/visitor/compare/visit_mut_span_panic 2351514 ns/iter (± 6802) 2352458 ns/iter (± 4434) 1.00
es/visitor/compare/fold_span 3386672 ns/iter (± 9327) 3415559 ns/iter (± 8084) 0.99
es/visitor/compare/fold_span_panic 3483162 ns/iter (± 11942) 3507489 ns/iter (± 7441) 0.99
es/lexer/colors 13056 ns/iter (± 18) 13187 ns/iter (± 13) 0.99
es/lexer/angular 6041072 ns/iter (± 4358) 6215337 ns/iter (± 8512) 0.97
es/lexer/backbone 782821 ns/iter (± 469) 799503 ns/iter (± 895) 0.98
es/lexer/jquery 4469864 ns/iter (± 7727) 4548720 ns/iter (± 7381) 0.98
es/lexer/jquery mobile 6815354 ns/iter (± 5512) 6953183 ns/iter (± 12612) 0.98
es/lexer/mootools 3534402 ns/iter (± 2472) 3608379 ns/iter (± 3510) 0.98
es/lexer/underscore 658210 ns/iter (± 759) 667367 ns/iter (± 833) 0.99
es/lexer/three 21312625 ns/iter (± 22326) 21586226 ns/iter (± 26821) 0.99
es/lexer/yui 3824650 ns/iter (± 2114) 3879551 ns/iter (± 4830) 0.99
es/parser/colors 27670 ns/iter (± 58) 27130 ns/iter (± 36) 1.02
es/parser/angular 13981500 ns/iter (± 71208) 13421488 ns/iter (± 66659) 1.04
es/parser/backbone 2066198 ns/iter (± 11211) 1998011 ns/iter (± 11354) 1.03
es/parser/jquery 11269079 ns/iter (± 55270) 10863019 ns/iter (± 115377) 1.04
es/parser/jquery mobile 17256700 ns/iter (± 47016) 16642486 ns/iter (± 49694) 1.04
es/parser/mootools 8676905 ns/iter (± 11455) 8369254 ns/iter (± 32432) 1.04
es/parser/underscore 1789026 ns/iter (± 11370) 1723238 ns/iter (± 8761) 1.04
es/parser/three 48786770 ns/iter (± 238128) 46746375 ns/iter (± 190691) 1.04
es/parser/yui 8515542 ns/iter (± 31113) 8213383 ns/iter (± 29962) 1.04
es/preset-env/usage/builtin_type 136429 ns/iter (± 31794) 139107 ns/iter (± 32807) 0.98
es/preset-env/usage/property 16965 ns/iter (± 43) 17173 ns/iter (± 112) 0.99
es/resolver/typescript 88637849 ns/iter (± 1052699) 88906878 ns/iter (± 1449039) 1.00
es/fixer/typescript 64211503 ns/iter (± 775683) 64253491 ns/iter (± 587982) 1.00
es/hygiene/typescript 130744740 ns/iter (± 573341) 131476530 ns/iter (± 840188) 0.99
es/resolver_with_hygiene/typescript 241504094 ns/iter (± 631122) 244815235 ns/iter (± 1001640) 0.99
es/visitor/base-perf/module_clone 60902 ns/iter (± 327) 60290 ns/iter (± 187) 1.01
es/visitor/base-perf/fold_empty 64876 ns/iter (± 270) 64309 ns/iter (± 717) 1.01
es/visitor/base-perf/fold_noop_impl_all 64917 ns/iter (± 267) 65091 ns/iter (± 338) 1.00
es/visitor/base-perf/fold_noop_impl_vec 64849 ns/iter (± 357) 65115 ns/iter (± 235) 1.00
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 56 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed_clone 40 ns/iter (± 0) 39 ns/iter (± 0) 1.03
es/visitor/base-perf/boxing_boxed 108 ns/iter (± 0) 109 ns/iter (± 0) 0.99
es/visitor/base-perf/boxing_unboxed 78 ns/iter (± 0) 78 ns/iter (± 0) 1
es/visitor/base-perf/visit_empty 0 ns/iter (± 0) 0 ns/iter (± 0) NaN
es/visitor/base-perf/visit_contains_this 2640 ns/iter (± 21) 2641 ns/iter (± 13) 1.00
es/base/parallel/resolver/typescript 4181871785 ns/iter (± 190995579) 3729121258 ns/iter (± 232758731) 1.12
es/base/parallel/hygiene/typescript 1428135712 ns/iter (± 21925360) 1444069534 ns/iter (± 17842857) 0.99
misc/visitors/time-complexity/time 5 132 ns/iter (± 0) 139 ns/iter (± 0) 0.95
misc/visitors/time-complexity/time 10 303 ns/iter (± 22) 402 ns/iter (± 5) 0.75
misc/visitors/time-complexity/time 15 680 ns/iter (± 10) 525 ns/iter (± 87) 1.30
misc/visitors/time-complexity/time 20 1055 ns/iter (± 3) 1090 ns/iter (± 12) 0.97
misc/visitors/time-complexity/time 40 4109 ns/iter (± 263) 3632 ns/iter (± 9) 1.13
misc/visitors/time-complexity/time 60 8636 ns/iter (± 760) 7562 ns/iter (± 63) 1.14
es/full-target/es2016 234069 ns/iter (± 1014) 234356 ns/iter (± 609) 1.00
es/full-target/es2017 218805 ns/iter (± 1158) 221421 ns/iter (± 413) 0.99
es/full-target/es2018 209997 ns/iter (± 1611) 210339 ns/iter (± 559) 1.00
es2020_nullish_coalescing 70907 ns/iter (± 497) 70390 ns/iter (± 381) 1.01
es2020_optional_chaining 79760 ns/iter (± 275) 81651 ns/iter (± 277) 0.98
es2022_class_properties 116701 ns/iter (± 521) 116797 ns/iter (± 432) 1.00
es2018_object_rest_spread 75446 ns/iter (± 211) 75051 ns/iter (± 251) 1.01
es2019_optional_catch_binding 64400 ns/iter (± 305) 64304 ns/iter (± 131) 1.00
es2017_async_to_generator 64903 ns/iter (± 242) 64581 ns/iter (± 204) 1.00
es2016_exponentiation 68702 ns/iter (± 134) 68405 ns/iter (± 157) 1.00
es2015_arrow 72240 ns/iter (± 154) 71665 ns/iter (± 218) 1.01
es2015_block_scoped_fn 69802 ns/iter (± 376) 67922 ns/iter (± 205) 1.03
es2015_block_scoping 124875 ns/iter (± 506) 124362 ns/iter (± 459) 1.00

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

Please sign in to comment.