forked from lazytiger/go-v8
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathv8_value_test.go
106 lines (80 loc) · 2.54 KB
/
v8_value_test.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package v8
import "testing"
import "runtime"
func Test_Values(t *testing.T) {
engine.NewContext(nil).Scope(func(cs ContextScope) {
if !engine.Undefined().IsUndefined() {
t.Fatal("Undefined() not match")
}
if !engine.Null().IsNull() {
t.Fatal("Null() not match")
}
if !engine.True().IsTrue() {
t.Fatal("True() not match")
}
if !engine.False().IsFalse() {
t.Fatal("False() not match")
}
if engine.Undefined() != engine.Undefined() {
t.Fatal("Undefined() != Undefined()")
}
if engine.Null() != engine.Null() {
t.Fatal("Null() != Null()")
}
if engine.True() != engine.True() {
t.Fatal("True() != True()")
}
if engine.False() != engine.False() {
t.Fatal("False() != False()")
}
var (
maxInt32 = int64(0x7FFFFFFF)
maxUint32 = int64(0xFFFFFFFF)
maxUint64 = uint64(0xFFFFFFFFFFFFFFFF)
maxNumber = int64(maxUint64)
)
if engine.NewBoolean(true).ToBoolean() != true {
t.Fatal(`NewBoolean(true).ToBoolean() != true`)
}
if engine.NewNumber(12.34).ToNumber() != 12.34 {
t.Fatal(`NewNumber(12.34).ToNumber() != 12.34`)
}
if engine.NewNumber(float64(maxNumber)).ToInteger() != maxNumber {
t.Fatal(`NewNumber(float64(maxNumber)).ToInteger() != maxNumber`)
}
if engine.NewInteger(maxInt32).IsInt32() == false {
t.Fatal(`NewInteger(maxInt32).IsInt32() == false`)
}
if engine.NewInteger(maxUint32).IsInt32() != false {
t.Fatal(`NewInteger(maxUint32).IsInt32() != false`)
}
if engine.NewInteger(maxUint32).IsUint32() == false {
t.Fatal(`NewInteger(maxUint32).IsUint32() == false`)
}
if engine.NewInteger(maxNumber).ToInteger() != maxNumber {
t.Fatal(`NewInteger(maxNumber).ToInteger() != maxNumber`)
}
if engine.NewString("Hello World!").ToString() != "Hello World!" {
t.Fatal(`NewString("Hello World!").ToString() != "Hello World!"`)
}
if engine.NewObject().IsObject() == false {
t.Fatal(`NewObject().IsObject() == false`)
}
if engine.NewArray(5).IsArray() == false {
t.Fatal(`NewArray(5).IsArray() == false`)
}
if engine.NewArray(5).ToArray().Length() != 5 {
t.Fatal(`NewArray(5).Length() != 5`)
}
if engine.NewRegExp("foo", RF_None).IsRegExp() == false {
t.Fatal(`NewRegExp("foo", RF_None).IsRegExp() == false`)
}
if engine.NewRegExp("foo", RF_Global).ToRegExp().Pattern() != "foo" {
t.Fatal(`NewRegExp("foo", RF_Global).ToRegExp().Pattern() != "foo"`)
}
if engine.NewRegExp("foo", RF_Global).ToRegExp().Flags() != RF_Global {
t.Fatal(`NewRegExp("foo", RF_Global).ToRegExp().Flags() != RF_Global`)
}
})
runtime.GC()
}