1 | ## Script
|
2 |
|
3 | NAN provides `v8::Script` helpers as the API has changed over the supported versions of V8.
|
4 |
|
5 | - <a href="#api_nan_compile_script"><b><code>Nan::CompileScript()</code></b></a>
|
6 | - <a href="#api_nan_run_script"><b><code>Nan::RunScript()</code></b></a>
|
7 | - <a href="#api_nan_script_origin"><b><code>Nan::ScriptOrigin</code></b></a>
|
8 |
|
9 |
|
10 | <a name="api_nan_compile_script"></a>
|
11 | ### Nan::CompileScript()
|
12 |
|
13 | A wrapper around [`v8::ScriptCompiler::Compile()`](https://v8docs.nodesource.com/node-8.16/da/da5/classv8_1_1_script_compiler.html#a93f5072a0db55d881b969e9fc98e564b).
|
14 |
|
15 | Note that `Nan::BoundScript` is an alias for `v8::Script`.
|
16 |
|
17 | Signature:
|
18 |
|
19 | ```c++
|
20 | Nan::MaybeLocal<Nan::BoundScript> Nan::CompileScript(
|
21 | v8::Local<v8::String> s,
|
22 | const v8::ScriptOrigin& origin);
|
23 | Nan::MaybeLocal<Nan::BoundScript> Nan::CompileScript(v8::Local<v8::String> s);
|
24 | ```
|
25 |
|
26 |
|
27 | <a name="api_nan_run_script"></a>
|
28 | ### Nan::RunScript()
|
29 |
|
30 | Calls `script->Run()` or `script->BindToCurrentContext()->Run(Nan::GetCurrentContext())`.
|
31 |
|
32 | Note that `Nan::BoundScript` is an alias for `v8::Script` and `Nan::UnboundScript` is an alias for `v8::UnboundScript` where available and `v8::Script` on older versions of V8.
|
33 |
|
34 | Signature:
|
35 |
|
36 | ```c++
|
37 | Nan::MaybeLocal<v8::Value> Nan::RunScript(v8::Local<Nan::UnboundScript> script)
|
38 | Nan::MaybeLocal<v8::Value> Nan::RunScript(v8::Local<Nan::BoundScript> script)
|
39 | ```
|
40 |
|
41 | <a name="api_nan_script_origin"></a>
|
42 | ### Nan::ScriptOrigin
|
43 |
|
44 | A class transparently extending [`v8::ScriptOrigin`](https://v8docs.nodesource.com/node-16.0/db/d84/classv8_1_1_script_origin.html#pub-methods)
|
45 | to provide backwards compatibility. Only the listed methods are guaranteed to
|
46 | be available on all versions of Node.
|
47 |
|
48 | Declaration:
|
49 |
|
50 | ```c++
|
51 | class Nan::ScriptOrigin : public v8::ScriptOrigin {
|
52 | public:
|
53 | ScriptOrigin(v8::Local<v8::Value> name, v8::Local<v8::Integer> line = v8::Local<v8::Integer>(), v8::Local<v8::Integer> column = v8::Local<v8::Integer>())
|
54 | v8::Local<v8::Value> ResourceName() const;
|
55 | v8::Local<v8::Integer> ResourceLineOffset() const;
|
56 | v8::Local<v8::Integer> ResourceColumnOffset() const;
|
57 | }
|
58 | ```
|