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

LibJS: Migrate DeprecatedString to String

This changes BasicBlock's constructor and create().
This commit is contained in:
Nick Hawke 2023-10-26 23:57:51 -04:00 committed by Andreas Kling
parent 4c915a9e67
commit 67566e5017
4 changed files with 14 additions and 12 deletions

View file

@ -4,18 +4,18 @@
* SPDX-License-Identifier: BSD-2-Clause * SPDX-License-Identifier: BSD-2-Clause
*/ */
#include <AK/DeprecatedString.h> #include <AK/String.h>
#include <LibJS/Bytecode/BasicBlock.h> #include <LibJS/Bytecode/BasicBlock.h>
#include <LibJS/Bytecode/Op.h> #include <LibJS/Bytecode/Op.h>
namespace JS::Bytecode { namespace JS::Bytecode {
NonnullOwnPtr<BasicBlock> BasicBlock::create(DeprecatedString name) NonnullOwnPtr<BasicBlock> BasicBlock::create(String name)
{ {
return adopt_own(*new BasicBlock(move(name))); return adopt_own(*new BasicBlock(move(name)));
} }
BasicBlock::BasicBlock(DeprecatedString name) BasicBlock::BasicBlock(String name)
: m_name(move(name)) : m_name(move(name))
{ {
} }

View file

@ -7,7 +7,7 @@
#pragma once #pragma once
#include <AK/Badge.h> #include <AK/Badge.h>
#include <AK/DeprecatedString.h> #include <AK/String.h>
#include <LibJS/Forward.h> #include <LibJS/Forward.h>
#include <LibJS/Heap/Handle.h> #include <LibJS/Heap/Handle.h>
@ -24,7 +24,7 @@ class BasicBlock {
AK_MAKE_NONCOPYABLE(BasicBlock); AK_MAKE_NONCOPYABLE(BasicBlock);
public: public:
static NonnullOwnPtr<BasicBlock> create(DeprecatedString name); static NonnullOwnPtr<BasicBlock> create(String name);
~BasicBlock(); ~BasicBlock();
void dump(Executable const&) const; void dump(Executable const&) const;
@ -38,7 +38,7 @@ public:
void terminate(Badge<Generator>) { m_terminated = true; } void terminate(Badge<Generator>) { m_terminated = true; }
bool is_terminated() const { return m_terminated; } bool is_terminated() const { return m_terminated; }
DeprecatedString const& name() const { return m_name; } String const& name() const { return m_name; }
void set_handler(BasicBlock const& handler) { m_handler = &handler; } void set_handler(BasicBlock const& handler) { m_handler = &handler; }
void set_finalizer(BasicBlock const& finalizer) { m_finalizer = &finalizer; } void set_finalizer(BasicBlock const& finalizer) { m_finalizer = &finalizer; }
@ -47,12 +47,12 @@ public:
BasicBlock const* finalizer() const { return m_finalizer; } BasicBlock const* finalizer() const { return m_finalizer; }
private: private:
explicit BasicBlock(DeprecatedString name); explicit BasicBlock(String name);
Vector<u8> m_buffer; Vector<u8> m_buffer;
BasicBlock const* m_handler { nullptr }; BasicBlock const* m_handler { nullptr };
BasicBlock const* m_finalizer { nullptr }; BasicBlock const* m_finalizer { nullptr };
DeprecatedString m_name; String m_name;
bool m_terminated { false }; bool m_terminated { false };
}; };

View file

@ -449,7 +449,8 @@ void Generator::generate_scoped_jump(JumpType type)
VERIFY(m_current_unwind_context->finalizer().has_value()); VERIFY(m_current_unwind_context->finalizer().has_value());
m_current_unwind_context = m_current_unwind_context->previous(); m_current_unwind_context = m_current_unwind_context->previous();
auto jump_type_name = type == JumpType::Break ? "break"sv : "continue"sv; auto jump_type_name = type == JumpType::Break ? "break"sv : "continue"sv;
auto& block = make_block(DeprecatedString::formatted("{}.{}", current_block().name(), jump_type_name)); auto block_name = MUST(String::formatted("{}.{}", current_block().name(), jump_type_name));
auto& block = make_block(block_name);
emit<Op::ScheduleJump>(Label { block }); emit<Op::ScheduleJump>(Label { block });
switch_to_basic_block(block); switch_to_basic_block(block);
last_was_finally = true; last_was_finally = true;
@ -485,7 +486,8 @@ void Generator::generate_labelled_jump(JumpType type, DeprecatedFlyString const&
VERIFY(m_current_unwind_context->finalizer().has_value()); VERIFY(m_current_unwind_context->finalizer().has_value());
m_current_unwind_context = m_current_unwind_context->previous(); m_current_unwind_context = m_current_unwind_context->previous();
auto jump_type_name = type == JumpType::Break ? "break"sv : "continue"sv; auto jump_type_name = type == JumpType::Break ? "break"sv : "continue"sv;
auto& block = make_block(DeprecatedString::formatted("{}.{}", current_block().name(), jump_type_name)); auto block_name = MUST(String::formatted("{}.{}", current_block().name(), jump_type_name));
auto& block = make_block(block_name);
emit<Op::ScheduleJump>(Label { block }); emit<Op::ScheduleJump>(Label { block });
switch_to_basic_block(block); switch_to_basic_block(block);
last_was_finally = true; last_was_finally = true;

View file

@ -128,10 +128,10 @@ public:
[[nodiscard]] BasicBlock& current_block() { return *m_current_basic_block; } [[nodiscard]] BasicBlock& current_block() { return *m_current_basic_block; }
BasicBlock& make_block(DeprecatedString name = {}) BasicBlock& make_block(String name = {})
{ {
if (name.is_empty()) if (name.is_empty())
name = DeprecatedString::number(m_next_block++); name = MUST(String::number(m_next_block++));
auto block = BasicBlock::create(name); auto block = BasicBlock::create(name);
if (auto const* context = m_current_unwind_context) { if (auto const* context = m_current_unwind_context) {
if (context->handler().has_value()) if (context->handler().has_value())