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:
parent
4c915a9e67
commit
67566e5017
4 changed files with 14 additions and 12 deletions
|
@ -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))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue