summaryrefslogtreecommitdiff
path: root/Base/usr/share/man
diff options
context:
space:
mode:
authorLinus Groh <mail@linusgroh.de>2020-04-19 14:12:35 +0100
committerAndreas Kling <kling@serenityos.org>2020-04-19 15:22:31 +0200
commit440f01794655b8ab6bb244c8fe70b7523e38dc35 (patch)
treef70f02ae5d2d7a84bfbf6ea3a0fe6996211787bf /Base/usr/share/man
parentafdba94f63abb3961afdcd33c9ce7f9f435a812b (diff)
downloadserenity-440f01794655b8ab6bb244c8fe70b7523e38dc35.zip
Base: Update js(1) manpage
- Include all options - Update example REPL session to match current output - Mention REPL's help() - Add test mode section
Diffstat (limited to 'Base/usr/share/man')
-rw-r--r--Base/usr/share/man/man1/js.md33
1 files changed, 30 insertions, 3 deletions
diff --git a/Base/usr/share/man/man1/js.md b/Base/usr/share/man/man1/js.md
index 1680e42f1d..2c47cb7733 100644
--- a/Base/usr/share/man/man1/js.md
+++ b/Base/usr/share/man/man1/js.md
@@ -17,11 +17,15 @@ single lines) of code from standard input, evaluates them in one shared
interpreter context, and prints back their results. This mode is useful for
quickly experimenting with LibJS.
+Run `help()` in REPL mode to see its available built-in functions.
+
## Options
* `-A`, `--dump-ast`: Dump the Abstract Syntax Tree after parsing the program.
* `-l`, `--print-last-result`: Print the result of the last statement executed.
* `-g`, `--gc-on-every-allocation`: Run garbage collection on every allocation.
+* `-s`, `--syntax-highlight`: Enable live syntax highlighting in the REPL
+* `-t`, `--test-mode`: Run the interpreter with added functionality for the test harness
## Examples
@@ -36,10 +40,33 @@ And here's an example of an interactive REPL session:
```js
$ js
> function log_sum(a, b) {
-. console.log(a + b)
-. }
-[object ScriptFunction]
+> console.log(a + b)
+> }
+undefined
> log_sum(35, 42)
77
undefined
```
+
+## Test mode
+
+In test mode, the `load()` function is added to the global object and can be used
+to load further test utility functions defined in `LibJS/Tests/test-common.js`.
+
+Typically a test will look like this:
+
+```js
+load("test-common.js");
+
+try {
+ // test feature
+ console.log("PASS");
+} catch (e) {
+ console.log("FAIL: " + e);
+}
+```
+
+Available functions in `test-common.js`:
+
+* `assert(expression)`: Throws an `AssertionError` if condition does not evaluate to a truthy value
+* `assertNotReached()`: Throws an `AssertionError`, use to ensure certain code paths are never reached