5 use File::Copy qw/move/;
6 use File::Temp qw/tempfile/;
8 our $inputScriptFilename;
9 our $outputScriptFilename;
11 GetOptions('input-script=s' => \$inputScriptFilename,
12 'output-script=s' => \$outputScriptFilename);
14 unless (defined $inputScriptFilename and defined $outputScriptFilename) {
15 print "Usage: $0 --input-script <path> --output-script <path>\n";
19 open IN, $inputScriptFilename or die "Couldn't open $inputScriptFilename: $!";
20 our ($out, $tempFilename) = tempfile(UNLINK => 0) or die;
22 our $previousLine = "";
24 # Warn about console.assert in control flow statement without braces. Can change logic when stripped.
25 if (/console\.assert/) {
26 if ($previousLine =~ /^\s*(for|if|else|while|do)\b/ && $previousLine !~ /\{\s*$/) {
27 print "WARNING: console.assert inside control flow statement without braces on line: $.: $_";
31 s/\s*console\.assert\(.*\);\s*//g;
33 $previousLine = $_ if $_ !~ /^\s*$/;
35 # If console.assert is still on the line, either we missed a semicolon or it is multi-line. These did not get stripped.
36 if ($_ =~ /\s*console\.assert\(/) {
38 print "WARNING: console.assert missing trailing semicolon on line $.: $_" ;
40 print "WARNING: Multi-line console.assert on line $.: $_" ;
48 move $tempFilename, $outputScriptFilename or die "$!";