/
example.js
67 lines (49 loc) · 1.12 KB
/
example.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
const VeeEight = require('./lib/index').VeeEight
const v8 = new VeeEight()
// Primitive types:
console.log(v8.execute("1"))
// # => 1
console.log(v8.execute("'123'"))
// # => '123'
// Standard javascript functions:
console.log(v8.execute("parseInt('123')"))
// # => 123
// Arrays and objects:
console.log(v8.execute("[1,'a',3.5]"))
// # => [1, 'a', 3.5]
console.log(v8.execute("a = {b:2, c:3}"))
// # => {b: 2, c: 3}
// Errors:
try{
v8.execute("s")
}catch(err){
console.error(err)
// # => ReferenceError: s is not defined
}
try{
console.log(v8.execute("{"))
}catch(err){
console.error(err)
// # => SyntaxError: Unexpected end of input
}
// State is maintained:
console.log(v8.execute("variable = 'something'"))
// # => something
console.log(v8.execute("variable"))
// # => something
// Invoke 'reset' to restore initial context:
v8.reset()
try{
v8.execute("variable")
}catch(err){
console.error(err)
// # => ReferenceError: variable is not defined
}
// Set timeout to terminate long running scripts:
v8.timeout(1000)
try{
console.log(v8.execute("while(true){}"))
}catch(e){
console.log(e)
// # => timed out
}