LibJS: Throw TypeError when coercing symbol to number

This commit is contained in:
Linus Groh 2020-05-18 00:54:10 +01:00 committed by Andreas Kling
parent 476094922b
commit 4569e88bea
2 changed files with 8 additions and 9 deletions

View file

@ -231,8 +231,8 @@ Value Value::to_number(Interpreter& interpreter) const
return Value(parsed_double);
}
case Type::Symbol:
// FIXME: Get access to the interpreter and throw a TypeError
ASSERT_NOT_REACHED();
interpreter.throw_exception<TypeError>("Can't convert symbol to number");
return {};
case Type::Object:
auto primitive = m_value.as_object->to_primitive(Object::PreferredType::Number);
if (interpreter.exception())

View file

@ -14,13 +14,12 @@ try {
message: "Can't convert symbol to string",
});
// FIXME: Uncomment when this doesn't assert
// assertThrowsError(() => {
// s1 + 1;
// }, {
// error: TypeError,
// message: "Can't convert symbol to number",
// });
assertThrowsError(() => {
s1 + 1;
}, {
error: TypeError,
message: "Can't convert symbol to number",
});
console.log("PASS");
} catch (e) {