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

LibJS: Add side-effect-free version of Value::to_string()

There are now two API's on Value:

- Value::to_string(Interpreter&) -- may throw.
- Value::to_string_without_side_effects() -- will never throw.

These are some pretty big sweeping changes, so it's possible that I did
some part the wrong way. We'll work it out as we go. :^)

Fixes #2123.
This commit is contained in:
Andreas Kling 2020-05-15 13:39:24 +02:00
parent d8aa2a6997
commit c6ddbd1f3e
25 changed files with 285 additions and 112 deletions

View file

@ -116,7 +116,7 @@ Value Console::count()
if (m_client)
return m_client->count();
auto label = m_interpreter.argument_count() ? m_interpreter.argument(0).to_string() : "default";
auto label = m_interpreter.argument_count() ? m_interpreter.argument(0).to_string_without_side_effects() : "default";
auto counter_value = counter_increment(label);
dbg() << "log: " << label << ": " << counter_value;
@ -129,7 +129,7 @@ Value Console::count_reset()
if (m_client)
return m_client->count_reset();
auto label = m_interpreter.argument_count() ? m_interpreter.argument(0).to_string() : "default";
auto label = m_interpreter.argument_count() ? m_interpreter.argument(0).to_string_without_side_effects() : "default";
if (counter_reset(label))
dbg() << "log: " << label << ": 0";