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