mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 06:38:10 +00:00
LibJS: Implement bytecode generation for BigInts
This commit is contained in:
parent
0975e08285
commit
50ece3dd1b
5 changed files with 38 additions and 0 deletions
|
@ -8,6 +8,7 @@
|
|||
#include <LibJS/AST.h>
|
||||
#include <LibJS/Bytecode/Interpreter.h>
|
||||
#include <LibJS/Bytecode/Op.h>
|
||||
#include <LibJS/Runtime/BigInt.h>
|
||||
#include <LibJS/Runtime/GlobalObject.h>
|
||||
#include <LibJS/Runtime/ScriptFunction.h>
|
||||
#include <LibJS/Runtime/Value.h>
|
||||
|
@ -112,6 +113,11 @@ static Value typeof_(GlobalObject& global_object, Value value)
|
|||
|
||||
JS_ENUMERATE_COMMON_UNARY_OPS(JS_DEFINE_COMMON_UNARY_OP)
|
||||
|
||||
void NewBigInt::execute(Bytecode::Interpreter& interpreter) const
|
||||
{
|
||||
interpreter.reg(m_dst) = js_bigint(interpreter.vm().heap(), m_bigint);
|
||||
}
|
||||
|
||||
void NewString::execute(Bytecode::Interpreter& interpreter) const
|
||||
{
|
||||
interpreter.reg(m_dst) = js_string(interpreter.vm(), m_string);
|
||||
|
@ -231,6 +237,11 @@ String LoadRegister::to_string() const
|
|||
return String::formatted("LoadRegister dst:{}, src:{}", m_dst, m_src);
|
||||
}
|
||||
|
||||
String NewBigInt::to_string() const
|
||||
{
|
||||
return String::formatted("NewBigInt dst:{}, bigint:\"{}\"", m_dst, m_bigint.to_base10());
|
||||
}
|
||||
|
||||
String NewString::to_string() const
|
||||
{
|
||||
return String::formatted("NewString dst:{}, string:\"{}\"", m_dst, m_string);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue