1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:48:10 +00:00

LibJS: Generate bytecode for throw statements

This commit is contained in:
Gunnar Beutner 2021-06-09 18:18:56 +02:00 committed by Andreas Kling
parent e9bafd768d
commit b78f1c1261
5 changed files with 35 additions and 1 deletions

View file

@ -1,6 +1,7 @@
/*
* Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
* Copyright (c) 2021, Linus Groh <linusg@serenityos.org>
* Copyright (c) 2021, Gunnar Beutner <gbeutner@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
@ -255,6 +256,11 @@ void Decrement::execute(Bytecode::Interpreter& interpreter) const
interpreter.accumulator() = js_bigint(interpreter.vm().heap(), old_value.as_bigint().big_integer().minus(Crypto::SignedBigInteger { 1 }));
}
void Throw::execute(Bytecode::Interpreter& interpreter) const
{
interpreter.vm().throw_exception(interpreter.global_object(), interpreter.accumulator());
}
String Load::to_string(Bytecode::Executable const&) const
{
return String::formatted("Load {}", m_src);
@ -383,4 +389,9 @@ String Decrement::to_string(Bytecode::Executable const&) const
return "Decrement";
}
String Throw::to_string(Bytecode::Executable const&) const
{
return "Throw";
}
}