Browse Source

Base: Update js(1) manpage

- Include all options
- Update example REPL session to match current output
- Mention REPL's help()
- Add test mode section
Linus Groh 5 years ago
parent
commit
440f017946
1 changed files with 30 additions and 3 deletions
  1. 30 3
      Base/usr/share/man/man1/js.md

+ 30 - 3
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
 interpreter context, and prints back their results. This mode is useful for
 quickly experimenting with LibJS.
 quickly experimenting with LibJS.
 
 
+Run `help()` in REPL mode to see its available built-in functions.
+
 ## Options
 ## Options
 
 
 * `-A`, `--dump-ast`: Dump the Abstract Syntax Tree after parsing the program.
 * `-A`, `--dump-ast`: Dump the Abstract Syntax Tree after parsing the program.
 * `-l`, `--print-last-result`: Print the result of the last statement executed.
 * `-l`, `--print-last-result`: Print the result of the last statement executed.
 * `-g`, `--gc-on-every-allocation`: Run garbage collection on every allocation.
 * `-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
 ## Examples
 
 
@@ -36,10 +40,33 @@ And here's an example of an interactive REPL session:
 ```js
 ```js
 $ js
 $ js
 > function log_sum(a, b) {
 > function log_sum(a, b) {
-.     console.log(a + b)
-. }
-[object ScriptFunction]
+>     console.log(a + b)
+> }
+undefined
 > log_sum(35, 42)
 > log_sum(35, 42)
 77
 77
 undefined
 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