### Object hierarchy for JS Shell:

System

Methods

- `chdir`
- `pipe`
- `script`
- `exit`
- `system`
- `gc`
- `call (executes an external script)`
- `use (make methods of the script you pass available. I.e. if you say use('Foo','Bar'), you can now call Foo.f() and Bar.f(). Foo.eval() will evaluate all the code)`

Properties

- `stdout`
- `stdin`
- `stderr`
- `platform ('PC', 'UNIX', 'MAC')`
- `ARGV (arguments passed to the script)`

Notes: `pipe` works like backticks in Perl; `script` works the other way around, that is, you give it an array and it feeds the array to the executable you specify (somewhat similar to the script command on `UNIX`).

Environment
Properties All environment variables become properties of `Environment`. Assigning to them actually changes the environment.

File

Properties
- `currentDir`
- `length`
- `parent`
- `path`
- `name`
- `isDirectory`
- `isFile`
- `exists`
- `canRead`
- `canWrite`
- `opened`
- `type`
- `mode`
- `creationTime`
- `lastModified`
- `size`
- `randomAccess`
- `position`

Methods
- `open`
- `close`
- `remove`
- `copyTo`
- `renameTo`
- `flush`
- `skip`
- `read`
- `readln`
- `readAll`
- `write`
- `writeln`
- `writeAll`
- `list`
- `mkdir`

(Henri's stuff)