13af6ab5fSopenharmony_ci/*
23af6ab5fSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
33af6ab5fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
43af6ab5fSopenharmony_ci * you may not use this file except in compliance with the License.
53af6ab5fSopenharmony_ci * You may obtain a copy of the License at
63af6ab5fSopenharmony_ci *
73af6ab5fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
83af6ab5fSopenharmony_ci *
93af6ab5fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
103af6ab5fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
113af6ab5fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
123af6ab5fSopenharmony_ci * See the License for the specific language governing permissions and
133af6ab5fSopenharmony_ci * limitations under the License.
143af6ab5fSopenharmony_ci */
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_ci// fixable
173af6ab5fSopenharmony_cilet bar1 = 1;
183af6ab5fSopenharmony_civar foo1 = bar1;
193af6ab5fSopenharmony_ci
203af6ab5fSopenharmony_cilet bar2 = 1;
213af6ab5fSopenharmony_cilet most2 = 1;
223af6ab5fSopenharmony_civar foo2 = bar2, toast2 = most2;
233af6ab5fSopenharmony_ci
243af6ab5fSopenharmony_cilet bar3 = 1;
253af6ab5fSopenharmony_cilet most3 = 1;
263af6ab5fSopenharmony_civar foo3 = bar3; let toast3 = most3;
273af6ab5fSopenharmony_ci
283af6ab5fSopenharmony_cilet b4 = [];
293af6ab5fSopenharmony_cifor (var a4 of b4) { console.log(a4); }
303af6ab5fSopenharmony_ci
313af6ab5fSopenharmony_cilet b5 = [];
323af6ab5fSopenharmony_cifor (var a5 in b5) { console.log(a5); }
333af6ab5fSopenharmony_ci
343af6ab5fSopenharmony_cilet b6 = [];
353af6ab5fSopenharmony_cifor (let a6 of b6) { var c6 = 1; console.log(c6); }
363af6ab5fSopenharmony_ci
373af6ab5fSopenharmony_cilet list7 = [];
383af6ab5fSopenharmony_cifor (var i7 = 0; i7 < list7.length; ++i7) { foo(i7) }
393af6ab5fSopenharmony_ci
403af6ab5fSopenharmony_civar {a8, b8 = a8} = {} // not fixable
413af6ab5fSopenharmony_ci
423af6ab5fSopenharmony_civar a9 = b9; var b9 = 1
433af6ab5fSopenharmony_ci
443af6ab5fSopenharmony_civar foo10 = 1
453af6ab5fSopenharmony_ci
463af6ab5fSopenharmony_cideclare var foo11 = 2;
473af6ab5fSopenharmony_ci
483af6ab5fSopenharmony_ci// not fixable
493af6ab5fSopenharmony_civar fx12 = function (i12 = 0) { if (i12 < 5) { return fx12(i12 + 1); } console.log(i12); }; fx12();
503af6ab5fSopenharmony_ci
513af6ab5fSopenharmony_civar foo13 = function () { foo13() };
523af6ab5fSopenharmony_ci
533af6ab5fSopenharmony_civar foo14 = () => foo14();
543af6ab5fSopenharmony_ci
553af6ab5fSopenharmony_ci// fixable
563af6ab5fSopenharmony_civar bar15 = foo15; var foo15 = function () { foo15(); };
573af6ab5fSopenharmony_ci
583af6ab5fSopenharmony_civar bar16 = function () { foo16(); }; var foo16 = function() {};
593af6ab5fSopenharmony_ci
603af6ab5fSopenharmony_ci// not fixable
613af6ab5fSopenharmony_cifor (var i17 = 0, i17 = 0; false;);
623af6ab5fSopenharmony_ci
633af6ab5fSopenharmony_civar i18 = 0; for (var i18 = 1; false;); console.log(i18);
643af6ab5fSopenharmony_ci
653af6ab5fSopenharmony_civar a19, b19, c19; var a19;
663af6ab5fSopenharmony_ci
673af6ab5fSopenharmony_cilet b20 = 1;
683af6ab5fSopenharmony_civar a20; if (b20) { var a20; }
693af6ab5fSopenharmony_ci
703af6ab5fSopenharmony_cilet foo21 = 1;
713af6ab5fSopenharmony_ciif (foo21) { var a21, b21, c21; } a21;
723af6ab5fSopenharmony_ci
733af6ab5fSopenharmony_cifor (var i22 = 0; i22 < 10; ++i22) {} i22;
743af6ab5fSopenharmony_ci
753af6ab5fSopenharmony_cilet obj23 = [];
763af6ab5fSopenharmony_cifor (var a23 in obj23) {} a23;
773af6ab5fSopenharmony_ci
783af6ab5fSopenharmony_cilet list24 = [];
793af6ab5fSopenharmony_cifor (var a24 of list24) {} a24;
803af6ab5fSopenharmony_ci
813af6ab5fSopenharmony_cilet a25 = 1;
823af6ab5fSopenharmony_ciswitch (a25) { case 0: var b25 = 1 }
833af6ab5fSopenharmony_ci
843af6ab5fSopenharmony_cilet b26 = [];
853af6ab5fSopenharmony_cilet arr26 = [];
863af6ab5fSopenharmony_cifor (var a26 of b26) { arr26.push(() => a26); }
873af6ab5fSopenharmony_ci
883af6ab5fSopenharmony_cilet b27 = [];
893af6ab5fSopenharmony_cifor (let a27 of b27) { var c27; console.log(c27); c27 = 'hello'; }
903af6ab5fSopenharmony_ci
913af6ab5fSopenharmony_civar a28 = a28
923af6ab5fSopenharmony_ci
933af6ab5fSopenharmony_civar {a29 = a29} = {}
943af6ab5fSopenharmony_ci
953af6ab5fSopenharmony_civar {a30 = b30, b30} = {}
963af6ab5fSopenharmony_ci
973af6ab5fSopenharmony_civar a31 = b31, b31 = 1
983af6ab5fSopenharmony_ci
993af6ab5fSopenharmony_cifunction foo32() { a32 } var a32 = 1; foo32()
1003af6ab5fSopenharmony_ci
1013af6ab5fSopenharmony_cilet foo33 = 1;
1023af6ab5fSopenharmony_ciif (foo33) var bar33 = 1;
1033af6ab5fSopenharmony_ci
1043af6ab5fSopenharmony_ci// var foo34 = 1
1053af6ab5fSopenharmony_ci
1063af6ab5fSopenharmony_ci// { var foo35 = 1 }
1073af6ab5fSopenharmony_ci
1083af6ab5fSopenharmony_ciif (true) { var foo36 = 1 }
1093af6ab5fSopenharmony_ci
1103af6ab5fSopenharmony_cifunction foo37() { var let; }
1113af6ab5fSopenharmony_ci
1123af6ab5fSopenharmony_ci// how to test it, let keyword should stay let keyword
1133af6ab5fSopenharmony_ci// function foo38() { var { let } = {}; }
1143af6ab5fSopenharmony_ci
1153af6ab5fSopenharmony_civar foo39 = (function () { foo39(); })();
1163af6ab5fSopenharmony_ci
1173af6ab5fSopenharmony_cilet bar40 = function(a) {};
1183af6ab5fSopenharmony_civar foo40 = bar40(function () { foo40(); });
1193af6ab5fSopenharmony_ci
1203af6ab5fSopenharmony_civar bar41 = foo41, foo41 = function () { foo41(); };
1213af6ab5fSopenharmony_ci
1223af6ab5fSopenharmony_civar { foo42 = foo42 } = function () { foo42(); };
1233af6ab5fSopenharmony_ci
1243af6ab5fSopenharmony_civar { bar43 = foo43, foo43 } = function () { foo43(); };
125