mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 12:28:12 +00:00
LibJS: Fix \x escapes of bytes with high bit set
With this, typing `"\xff"` into Browser's console no longer makes the app crash. While here, also make the \u handler call append_codepoint() instead of calling an overload where it's not immediately clear which overload is getting called. This has no behavior change.
This commit is contained in:
parent
01522b8d71
commit
9e32ad6c99
2 changed files with 4 additions and 2 deletions
|
@ -136,7 +136,7 @@ String Token::string_value(StringValueStatus& status) const
|
|||
auto digit2 = m_value[++i];
|
||||
if (!isxdigit(digit1) || !isxdigit(digit2))
|
||||
return encoding_failure(StringValueStatus::MalformedHexEscape);
|
||||
builder.append(static_cast<char>(hex2int(digit1) * 16 + hex2int(digit2)));
|
||||
builder.append_codepoint(hex2int(digit1) * 16 + hex2int(digit2));
|
||||
break;
|
||||
}
|
||||
case 'u': {
|
||||
|
@ -174,7 +174,7 @@ String Token::string_value(StringValueStatus& status) const
|
|||
}
|
||||
}
|
||||
|
||||
builder.append({ &code_point, 1 });
|
||||
builder.append_codepoint(code_point);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue