ladybird/Libraries/LibJS/Tests/computed-property-throws.js
Linus Groh 41837f548d LibJS: Don't create "valid" PropertyName from null string
When value.to_string() throws an exception it returns a null string in
which case we must not construct a valid PropertyName.

Also ASSERT in PropertyName(String) and PropertyName(FlyString) to
prevent this from happening in the future.

Fixes #3941.
2020-11-04 15:31:39 +01:00

19 lines
459 B
JavaScript

test("Issue #3459, exception in computed property expression", () => {
expect(() => {
"foo"[bar];
}).toThrow(ReferenceError);
expect(() => {
"foo"[bar]();
}).toThrow(ReferenceError);
});
test("Issue #3941, exception in computed property's toString()", () => {
expect(() => {
const o = {
toString() {
throw Error();
},
};
"foo"[o];
}).toThrow(Error);
});