The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#Lame switch because old Test::Harness does not support trailing test count
BEGIN { $| = 1;  print "1..4\n" }
use Data::JavaScript {JS=>1.2}; #No Unicode, undef yields empty strings

#Test undef default

$_ = join('', jsdump('foo', [1,undef,1]));
print 'not ' unless $_ eq
      "var foo = new Array;foo[0] = 1;foo[1] = '';foo[2] = 1;";
print "ok 1 #$_\n";

#Test alphanumeric string output: quoting, ASCII/ANSI escaping, Unicode

$_ = join('', jsdump("ANSI", "M\xF6tley Cr\xFce"));
print 'not ' unless $_ eq 'var ANSI = "M\xF6tley Cr\xFCe";';
print "ok 2 #$_\n";

if( $] >= 5.006 ){
  $_ = join('', jsdump("unicode", "Euros (\x{20ac}) aren't Ecus (\x{20a0})"));
  print 'not ' unless $_ eq
    q(var unicode = "Euros (\xE2\x82\xAC) aren't Ecus (\xE2\x82\xA0)";);
  print "ok 3 #$_\n";
}
else{
  print "ok 3 # Skipped: No real Unicode\n";
}

$_ = join('', jsdump('thang', qq('	"\n\\\xa0) ));
print 'not ' unless $_ eq q(var thang = "'\t\"\n\\\\\xA0";);
print "ok 4 #$_\n";