summaryrefslogtreecommitdiff
path: root/Userland
diff options
context:
space:
mode:
authorLinus Groh <mail@linusgroh.de>2020-04-13 14:04:24 +0100
committerAndreas Kling <kling@serenityos.org>2020-04-13 16:28:50 +0200
commit0040d6bf2d521cabed79fa2fc489ea982c4f0f59 (patch)
treec3b59009e70b2553403c638ce31669fdb05034a1 /Userland
parent94647fa4abebd187e1abd7f0d01681dd9d08ea9b (diff)
downloadserenity-0040d6bf2d521cabed79fa2fc489ea982c4f0f59.zip
js: Add assertNotReached() function in test mode
Diffstat (limited to 'Userland')
-rw-r--r--Userland/js.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/Userland/js.cpp b/Userland/js.cpp
index 9e1412c0c9..9e6f64b556 100644
--- a/Userland/js.cpp
+++ b/Userland/js.cpp
@@ -279,6 +279,7 @@ ReplObject::ReplObject()
ReplObject::~ReplObject()
{
}
+
JS::Value ReplObject::save_to_file(JS::Interpreter& interpreter)
{
if (!interpreter.argument_count())
@@ -290,6 +291,7 @@ JS::Value ReplObject::save_to_file(JS::Interpreter& interpreter)
}
return JS::Value(false);
}
+
JS::Value ReplObject::exit_interpreter(JS::Interpreter& interpreter)
{
if (!interpreter.argument_count())
@@ -298,6 +300,7 @@ JS::Value ReplObject::exit_interpreter(JS::Interpreter& interpreter)
exit(exit_code);
return JS::js_undefined();
}
+
JS::Value ReplObject::repl_help(JS::Interpreter& interpreter)
{
StringBuilder help_text;
@@ -383,10 +386,16 @@ JS::Value assert_impl(JS::Interpreter& interpreter)
return JS::Value(assertion_value);
}
+JS::Value assert_not_reached(JS::Interpreter& interpreter)
+{
+ return interpreter.throw_exception<JS::Error>("AssertionError", "assertNotReached() was reached!");
+}
+
void enable_test_mode(JS::Interpreter& interpreter)
{
interpreter.global_object().put_native_function("load", ReplObject::load_file);
interpreter.global_object().put_native_function("assert", assert_impl);
+ interpreter.global_object().put_native_function("assertNotReached", assert_not_reached);
}
int main(int argc, char** argv)