# PaperScript

## Static Methods

`PaperScript.compile(code[, options])`

Compiles PaperScript code into JavaScript code.

#### Options:

- `options.url: `String`` — the url of the source, for source-map generation
- `options.source: `String`` — the source to be used for the source- mapping, in case the code that’s passed in has already been mingled.

#### Parameters:

- `code:` `String` — the PaperScript code
- `options:` `Object` — the compilation options — optional

#### Returns:

- ``Object`` — an object holding the compiled PaperScript translated into JavaScript code along with source-maps and other information.

`PaperScript.execute(code, scope[, options])`

Compiles the PaperScript code into a compiled function and executes it. The compiled function receives all properties of the passed `PaperScope` as arguments, to emulate a global scope with unaffected performance. It also installs global view and tool handlers automatically on the respective objects.

#### Options:

- `options.url: `String`` — the url of the source, for source-map generation
- `options.source: `String`` — the source to be used for the source- mapping, in case the code that’s passed in has already been mingled.

#### Parameters:

- `code:` `String` — the PaperScript code
- `scope:` `PaperScope` — the scope for which the code is executed
- `options:` `Object` — the compilation options — optional

#### Returns:

- ``Object`` — the exports defined in the executed code

`PaperScript.load([script])`

Loads, compiles and executes PaperScript code in the HTML document. Note that this method is executed automatically for all scripts in the document through a window load event. You can optionally call it earlier (e.g. from a DOM ready event), or you can mark scripts to be ignored by setting the attribute `ignore="true"` or `data-paper-ignore="true"`, and call the `PaperScript.load(script)` method for each script separately when needed.

#### Parameters:

- `script:` `HTMLScriptElement` — the script to load. If none is provided, all scripts of the HTML document are iterated over and loaded — optional, default: `null`

#### Returns:

- ``PaperScope`` — the scope produced for the passed `script`, or `undefined` of multiple scripts area loaded