cp_pair = 0;
} else if (njs_surrogate_any(cp)) {
- if (cp <= 0xdbff && src[0] == '\\' && src[1] == 'u') {
+ if (cp <= 0xdbff && (end - src) >= 2
+ && src[0] == '\\' && src[1] == 'u')
+ {
cp_pair = cp;
continue;
}
cp_pair = 0;
} else if (njs_surrogate_any(cp)) {
- if (cp <= 0xdbff && src[0] == '\\' && src[1] == 'u') {
+ if (cp <= 0xdbff && (end - src) >= 2
+ && src[0] == '\\' && src[1] == 'u')
+ {
cp_pair = cp;
continue;
}
{ njs_str("`\\${a}bc"),
njs_str("SyntaxError: Unterminated template literal") },
+ { njs_str("`\\ud83d`"),
+ njs_str("�") },
+
+ { njs_str("`\\ud83d${1}`"),
+ njs_str("�1") },
+
{ njs_str("var v = undefined; var u8 = 'α';"
"[`undefined${u8}`.length, `undefineQ${u8}`.length]"),
njs_str("10,10") },