144 lines
3.7 KiB
JavaScript
144 lines
3.7 KiB
JavaScript
unicode_parse_variables: {
|
||
options = {}
|
||
input: {
|
||
var a = {};
|
||
a.你好 = 456;
|
||
|
||
var ↂωↂ = 123;
|
||
var l০ = 3; // 2nd char is a unicode digit
|
||
}
|
||
expect: {
|
||
var a = {};
|
||
a.你好 = 456;
|
||
|
||
var ↂωↂ = 123;
|
||
var l০ = 3;
|
||
}
|
||
}
|
||
|
||
unicode_escaped_identifier: {
|
||
input: {
|
||
var \u0061 = "\ud800\udc00";
|
||
console.log(a);
|
||
}
|
||
expect_exact: 'var a="\ud800\udc00";console.log(a);'
|
||
expect_stdout: "\ud800\udc00"
|
||
}
|
||
|
||
unicode_identifier_ascii_only: {
|
||
beautify = {
|
||
ascii_only: true,
|
||
}
|
||
input: {
|
||
var \u0061 = "testing \udbc4\udd11";
|
||
var bar = "h\u0065llo";
|
||
console.log(a, \u0062\u0061r);
|
||
}
|
||
expect_exact: 'var a="testing \\udbc4\\udd11";var bar="hello";console.log(a,bar);'
|
||
expect_stdout: "testing \udbc4\udd11 hello"
|
||
}
|
||
|
||
unicode_string_literals: {
|
||
beautify = {
|
||
ascii_only: true,
|
||
}
|
||
input: {
|
||
var a = "6 length unicode character: \udbc4\udd11";
|
||
console.log(\u0061);
|
||
}
|
||
expect_exact: 'var a="6 length unicode character: \\udbc4\\udd11";console.log(a);'
|
||
expect_stdout: "6 length unicode character: \udbc4\udd11"
|
||
}
|
||
|
||
check_escape_style: {
|
||
beautify = {
|
||
ascii_only: true,
|
||
}
|
||
input: {
|
||
var a = "\x01";
|
||
var \ua0081 = "\x10"; // \u0081 only in ID_Continue
|
||
var \u0100 = "\u0100";
|
||
var \u1000 = "\u1000";
|
||
var \u1000 = "\ud800\udc00";
|
||
var \u3f80 = "\udbc0\udc00";
|
||
console.log(\u0061, \ua0081, \u0100, \u1000, \u3f80);
|
||
}
|
||
expect_exact: 'var a="\\x01";var \\ua0081="\\x10";var \\u0100="\\u0100";var \\u1000="\\u1000";var \\u1000="\\ud800\\udc00";var \\u3f80="\\udbc0\\udc00";console.log(a,\\ua0081,\\u0100,\\u1000,\\u3f80);'
|
||
expect_stdout: "\u0001 \u0010 \u0100 \ud800\udc00 \udbc0\udc00"
|
||
}
|
||
|
||
escape_non_escaped_identifier: {
|
||
beautify = {
|
||
ascii_only: true,
|
||
}
|
||
input: {
|
||
var µþ = "µþ";
|
||
console.log(\u00b5þ);
|
||
}
|
||
expect_exact: 'var \\u00b5\\u00fe="\\xb5\\xfe";console.log(\\u00b5\\u00fe);'
|
||
expect_stdout: "µþ"
|
||
}
|
||
|
||
non_escape_2_non_escape: {
|
||
beautify = {
|
||
ascii_only: false,
|
||
}
|
||
input: {
|
||
var µþ = "µþ";
|
||
console.log(\u00b5þ);
|
||
}
|
||
expect_exact: 'var µþ="µþ";console.log(µþ);'
|
||
expect_stdout: "µþ"
|
||
}
|
||
|
||
issue_2242_1: {
|
||
beautify = {
|
||
ascii_only: false,
|
||
}
|
||
input: {
|
||
console.log("\ud83d", "\ude00", "\ud83d\ude00", "\ud83d@\ude00");
|
||
}
|
||
expect_exact: 'console.log("\\ud83d","\\ude00","\ud83d\ude00","\\ud83d@\\ude00");'
|
||
expect_stdout: "\ud83d \ude00 \ud83d\ude00 \ud83d@\ude00"
|
||
}
|
||
|
||
issue_2242_2: {
|
||
beautify = {
|
||
ascii_only: true,
|
||
}
|
||
input: {
|
||
console.log("\ud83d", "\ude00", "\ud83d\ude00", "\ud83d@\ude00");
|
||
}
|
||
expect_exact: 'console.log("\\ud83d","\\ude00","\\ud83d\\ude00","\\ud83d@\\ude00");'
|
||
expect_stdout: "\ud83d \ude00 \ud83d\ude00 \ud83d@\ude00"
|
||
}
|
||
|
||
issue_2242_3: {
|
||
options = {
|
||
evaluate: false,
|
||
}
|
||
input: {
|
||
console.log("\ud83d" + "\ude00", "\ud83d" + "@" + "\ude00");
|
||
}
|
||
expect_exact: 'console.log("\\ud83d"+"\\ude00","\\ud83d"+"@"+"\\ude00");'
|
||
expect_stdout: "\ud83d\ude00 \ud83d@\ude00"
|
||
}
|
||
|
||
issue_2242_4: {
|
||
options = {
|
||
evaluate: true,
|
||
}
|
||
input: {
|
||
console.log("\ud83d" + "\ude00", "\ud83d" + "@" + "\ude00");
|
||
}
|
||
expect_exact: 'console.log("\ud83d\ude00","\\ud83d@\\ude00");'
|
||
expect_stdout: "\ud83d\ude00 \ud83d@\ude00"
|
||
}
|
||
|
||
issue_2569: {
|
||
input: {
|
||
new RegExp("[\udc42-\udcaa\udd74-\udd96\ude45-\ude4f\udea3-\udecc]");
|
||
}
|
||
expect_exact: 'new RegExp("[\\udc42-\\udcaa\\udd74-\\udd96\\ude45-\\ude4f\\udea3-\\udecc]");'
|
||
}
|