@@ -3,23 +3,16 @@ package v8host
3
3
import (
4
4
"github.com/gost-dom/browser/dom/event"
5
5
"github.com/gost-dom/browser/internal/entity"
6
+ "github.com/gost-dom/browser/internal/log"
6
7
v8 "github.com/gost-dom/v8go"
7
8
)
8
9
9
- // the eventWrapper type is a temporary solution because the code generator
10
- // creates function calls, not field lookups.
11
- //
12
- // Once that if fixed, this type can be removed.
13
- type eventWrapper struct { * event.Event }
14
-
15
- func (w eventWrapper ) Type () string {
16
- return w .Event .Type
17
- }
18
- func (w eventWrapper ) Cancelable () bool {
19
- return w .Event .Cancelable
10
+ type eventV8Wrapper struct {
11
+ handleReffedObject [* event.Event ]
20
12
}
21
- func (w eventWrapper ) Bubbles () bool {
22
- return w .Event .Bubbles
13
+
14
+ func newEventV8Wrapper (scriptHost * V8ScriptHost ) * eventV8Wrapper {
15
+ return & eventV8Wrapper {newHandleReffedObject [* event.Event ](scriptHost )}
23
16
}
24
17
25
18
func (w eventV8Wrapper ) defaultEventInit () eventInitWrapper {
@@ -32,9 +25,7 @@ func (w eventV8Wrapper) CreateInstance(
32
25
type_ string ,
33
26
o eventInitWrapper ,
34
27
) (* v8.Value , error ) {
35
- e := eventWrapper {
36
- & event.Event {Type : type_ , Bubbles : o .bubbles , Cancelable : o .cancelable , Data : o .init },
37
- }
28
+ e := & event.Event {Type : type_ , Bubbles : o .bubbles , Cancelable : o .cancelable , Data : o .init }
38
29
return w .store (e , ctx , this )
39
30
}
40
31
@@ -58,3 +49,30 @@ func (w eventV8Wrapper) eventPhase(info *v8.FunctionCallbackInfo) (*v8.Value, er
58
49
}
59
50
return v8 .NewValue (w .iso (), uint32 (instance .EventPhase ()))
60
51
}
52
+
53
+ func (w eventV8Wrapper ) type_ (info * v8.FunctionCallbackInfo ) (* v8.Value , error ) {
54
+ log .Debug (w .logger (info ), "V8 Function call: Event.type" )
55
+ instance , err := w .getInstance (info )
56
+ if err != nil {
57
+ return nil , err
58
+ }
59
+ return v8 .NewValue (w .iso (), instance .Type )
60
+ }
61
+
62
+ func (w eventV8Wrapper ) cancelable (info * v8.FunctionCallbackInfo ) (* v8.Value , error ) {
63
+ log .Debug (w .logger (info ), "V8 Function call: Event.cancelable" )
64
+ instance , err := w .getInstance (info )
65
+ if err != nil {
66
+ return nil , err
67
+ }
68
+ return v8 .NewValue (w .iso (), instance .Cancelable )
69
+ }
70
+
71
+ func (w eventV8Wrapper ) bubbles (info * v8.FunctionCallbackInfo ) (* v8.Value , error ) {
72
+ log .Debug (w .logger (info ), "V8 Function call: Event.bubbles" )
73
+ instance , err := w .getInstance (info )
74
+ if err != nil {
75
+ return nil , err
76
+ }
77
+ return v8 .NewValue (w .iso (), instance .Bubbles )
78
+ }
0 commit comments