1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 01:17:34 +00:00

LibJS: Do not coerce nullish references to unresolvable references

These are not strictly unresolvable references. Treating them as such
fails an assertion in the `delete UnaryExpression` semantic (which is
Reference::delete_ in our implementation) - we enter the unresolvable,
branch, which then asserts that the [[Strict]] slot of the reference is
false.
This commit is contained in:
Timothy Flynn 2023-07-06 16:18:17 -04:00 committed by Linus Groh
parent f57310999d
commit 2b19d1b5ab
2 changed files with 11 additions and 6 deletions

View file

@ -38,12 +38,6 @@ public:
, m_this_value(this_value)
, m_strict(strict)
{
if (base.is_nullish()) {
m_base_type = BaseType::Unresolvable;
m_base_value = {};
m_this_value = {};
m_name = {};
}
}
Reference(Environment& base, DeprecatedFlyString referenced_name, bool strict = false, Optional<EnvironmentCoordinate> environment_coordinate = {})