blob: cd7f537d25e5189884b5809d91d7e151230d5e4a [file] [log] [blame]
var unicode_strings = require("unicode_strings");
// This uses slightly different encoding than the Python test
// but AFAIK, it is the V8 handling that is the correct one
function check(s1, s2) {
for (let i in s1) {
if (s1[i] !== s2[i])
console.error(`Character number ${i}, ${s1.charCodeAt(i)} != ${s2.charCodeAt(i)}`);
}
if (s1 != s2) {
throw new Error(`'${s1}' != '${s2}'`);
}
}
// The C++ string contains an invalid UTF-8 character
// V8 transforms it to \ufffd
// JSC silently refuses it
test_string = "h\ufffdllo w\u00f6rld";
if (typeof print === 'undefined') {
check(unicode_strings.non_utf8_c_str(), test_string);
check(unicode_strings.non_utf8_std_string(), test_string);
} else {
check(unicode_strings.non_utf8_c_str(), '');
check(unicode_strings.non_utf8_std_string(), '');
}