-
Notifications
You must be signed in to change notification settings - Fork 113
/
module.go
54 lines (45 loc) · 938 Bytes
/
module.go
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
package v8
/*
#include "v8/vm.h"
*/
import "C"
import "strings"
// Module JavaScript module.
type Module struct {
id string
code string
}
var moduleReplacer = strings.NewReplacer(
"\\", "\\\\",
"\n", "\\n",
"\r", "\\r",
"\"", "\\\"",
"\x00", "\\\\x00", // C string ending, escape twice
"\u2028", "\\u2028", // Unicode Line Separator
"\u2029", "\\u2029", // Unicode Paragraph Separator
)
// NewModule create new Module.
func NewModule(id, code string) *Module {
return &Module{
id: id,
code: code,
}
}
// Modules module map.
type Modules map[string]*Module
// NewModules create new Modules.
func NewModules() Modules {
return make(Modules)
}
// Set set module to modules.
func (ms Modules) Set(m *Module) {
ms[m.id] = m
}
// Get get module with specified id.
func (ms Modules) Get(id string) *Module {
return ms[id]
}
// Del del module with specified id.
func (ms Modules) Del(id string) {
delete(ms, id)
}