BEGIN {
my %escapes = (
"\\" => "\\\\",
"\"" => "\\\"",
"\n" => "\\n",
"\r" => "\\r",
"\t" => "\\t",
);
my ($escapes) = map qr/[$_]/,
join '',
map quotemeta,
keys %escapes;
sub to_js_str_literal {
for (my $s = $_[0]) {
s/($escapes)/$escapes{$1}/g;
s/([^\x20-\x7E])/sprintf("\\u%04X", ord($1))/eg;
return qq{"$_"};
}
}
}
####
my $js_script_qfn = to_js_str_literal($script_qfn);
print $JSWRITE <<"__END__";
var filename = $js_script_qfn;
load('jslint.js');
END
__END__
####
print $JSWRITE map "$_\n",
"var file = [",
( map " ".to_js_str_literal($_), <$fh> ),
"];",
"load('jslint.js');",
"END";