diff --git a/js/src/builtin/intl/PluralRules.cpp b/js/src/builtin/intl/PluralRules.cpp index 19604ac8d22d..072b926e9825 100644 --- a/js/src/builtin/intl/PluralRules.cpp +++ b/js/src/builtin/intl/PluralRules.cpp @@ -131,11 +131,15 @@ js::PluralRulesObject::finalize(FreeOp* fop, JSObject* obj) PluralRulesObject* pluralRules = &obj->as(); const Value& prslot = pluralRules->getReservedSlot(PluralRulesObject::UPLURAL_RULES_SLOT); - if (UPluralRules* pr = static_cast(prslot.toPrivate())) - uplrules_close(pr); + UPluralRules* pr = static_cast(prslot.toPrivate()); const Value& nfslot = pluralRules->getReservedSlot(PluralRulesObject::UNUMBER_FORMAT_SLOT); - if (UNumberFormat* nf = static_cast(nfslot.toPrivate())) + UNumberFormat* nf = static_cast(nfslot.toPrivate()); + + if (pr) + uplrules_close(pr); + + if (nf) unum_close(nf); }