1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 09:27:35 +00:00

LibJS: Allow statements to have multiple labels

This is a curious thing that occurs more often than you'd think in
minified JavaScript:

    a: b: c: for (...) { ... break b; ... }
This commit is contained in:
Andreas Kling 2021-09-26 18:16:06 +02:00
parent ababcc5725
commit 3252d984ae
6 changed files with 31 additions and 21 deletions

View file

@ -80,11 +80,12 @@ public:
{
}
FlyString const& label() const { return m_label; }
void set_label(FlyString string) { m_label = move(string); }
HashTable<FlyString> const& labels() const { return m_labels; }
void add_label(FlyString label) { m_labels.set(move(label)); }
bool has_label(FlyString const& label) const { return m_labels.contains(label); }
protected:
FlyString m_label;
HashTable<FlyString> m_labels;
};
class EmptyStatement final : public Statement {