@@ -34,144 +34,10 @@ func (s V8NamingStrategy) PrototypeWrapperName() string {
34
34
return LowerCaseFirstLetter (s .PrototypeWrapperBaseName ())
35
35
}
36
36
37
- type V8TargetGenerators struct {}
38
-
39
- func (gen V8TargetGenerators ) PlatformInfoArg () Generator { return g .Id ("info" ) }
40
-
41
- func (gen V8TargetGenerators ) CreateInitFunction (data ESConstructorData ) g.Generator {
42
- return g.FunctionDefinition {
43
- Name : "init" ,
44
- Body : g .NewValue ("registerJSClass" ).Call (
45
- g .Lit (data .Spec .TypeName ),
46
- g .Lit (data .Inheritance ),
47
- g .Id (prototypeFactoryFunctionName (data ))),
48
- }
49
- }
50
-
51
- func (gen V8TargetGenerators ) ReturnErrMsg (errGen g.Generator ) g.Generator {
52
- return g .Return (g .Nil , stdgen .ErrorsNew (errGen ))
53
- }
54
-
55
- func (gen V8TargetGenerators ) WrapperStructGenerators () wrappers.PlatformWrapperStructGenerators {
56
- return V8WrapperStructGenerators {}
57
- }
58
-
59
- func (gen V8TargetGenerators ) CreatePrototypeInitializer (
60
- data ESConstructorData ,
61
- body g.Generator ,
62
- ) g.Generator {
63
- naming := V8NamingStrategy {data }
64
- receiver := g .NewValue (naming .Receiver ())
65
- builder := NewConstructorBuilder ()
66
- return g.FunctionDefinition {
67
- Name : "installPrototype" ,
68
- Receiver : g.FunctionArgument {
69
- Name : receiver ,
70
- Type : g .Id (naming .PrototypeWrapperName ()),
71
- },
72
- Args : g .Arg (builder .Proto , v8ObjectTemplatePtr ),
73
- Body : body ,
74
- }
75
- }
76
-
77
- func (gen V8TargetGenerators ) CreatePrototypeInitializerBody (
78
- data ESConstructorData ,
79
- ) g.Generator {
80
- naming := V8NamingStrategy {data }
81
- receiver := g .NewValue (naming .Receiver ())
82
- builder := NewConstructorBuilder ()
83
- installer := PrototypeInstaller {
84
- builder .v8Iso ,
85
- builder .Proto ,
86
- WrapperInstance {g.Value {Generator : receiver }},
87
- }
88
- return g .StatementList (
89
- g .Assign (g .NewValue ("iso" ), receiver .Field ("scriptHost" ).Field ("iso" )),
90
- installer .InstallFunctionHandlers (data ),
91
- installer .InstallAttributeHandlers (data ),
92
- )
93
- }
94
-
95
- func (gen V8TargetGenerators ) CreateConstructorCallback (data ESConstructorData ) g.Generator {
96
- naming := V8NamingStrategy {data }
97
- var body g.Generator
98
- if wrappers .IsNodeType (data .IdlInterfaceName ) {
99
- body = CreateV8IllegalConstructorBody (data )
100
- } else {
101
- body = CreateV8ConstructorWrapperBody (data )
102
- }
103
- return g .StatementList (
104
- g .Line ,
105
- g.FunctionDefinition {
106
- Name : "Constructor" ,
107
- Receiver : g.FunctionArgument {
108
- Name : g .Id (naming .Receiver ()),
109
- Type : g .Id (naming .PrototypeWrapperName ()),
110
- },
111
- Args : g .Arg (g .Id ("info" ), v8FunctionCallbackInfoPtr ),
112
- RtnTypes : g .List (v8Value , g .Id ("error" )),
113
- Body : body ,
114
- },
115
- )
116
- }
117
-
118
- func (gen V8TargetGenerators ) CreateMethodCallbackBody (
119
- data ESConstructorData ,
120
- op ESOperation ,
121
- ) g.Generator {
122
- naming := V8NamingStrategy {data }
123
- receiver := WrapperInstance {g .NewValue (naming .Receiver ())}
124
- instance := g .NewValue ("instance" )
125
- readArgsResult := ReadArguments (data , op )
126
- err := g .Id ("err0" )
127
- if len (op .Arguments ) == 0 {
128
- err = g .Id ("err" )
129
- }
130
- requireContext := false
131
- var CreateCall = func (functionName string , argnames []g.Generator , op ESOperation ) g.Generator {
132
- callInstance := V8InstanceInvocation {
133
- Name : functionName ,
134
- Args : argnames ,
135
- Op : op ,
136
- Instance : & instance ,
137
- Receiver : receiver ,
138
- }.GetGenerator ()
139
- requireContext = requireContext || callInstance .RequireContext
140
- return callInstance .Generator
141
- }
142
- statements := g .StatementList (
143
- AssignArgs (data , op ),
144
- GetInstanceAndError (instance , err , data ),
145
- readArgsResult ,
146
- CreateV8WrapperMethodInstanceInvocations (
147
- data ,
148
- op ,
149
- idlNameToGoName (op .Name ),
150
- readArgsResult .Args ,
151
- err ,
152
- CreateCall ,
153
- true ,
154
- ),
155
- )
156
- if requireContext {
157
- statements .Prepend (V8RequireContext (receiver ))
158
- }
159
- return statements
160
- }
161
-
162
37
func prototypeFactoryFunctionName (data ESConstructorData ) string {
163
38
return fmt .Sprintf ("create%sPrototype" , data .IdlInterfaceName )
164
39
}
165
40
166
- func (gen V8TargetGenerators ) CreateHostInitializer (data ESConstructorData ) g.Generator {
167
- return g.FunctionDefinition {
168
- Name : prototypeFactoryFunctionName (data ),
169
- Args : g .Arg (scriptHost , scriptHostPtr ),
170
- RtnTypes : g .List (v8FunctionTemplatePtr ),
171
- Body : CreateV8ConstructorBody (data ),
172
- }
173
- }
174
-
175
41
func CreateV8ConstructorBody (data ESConstructorData ) g.Generator {
176
42
naming := V8NamingStrategy {data }
177
43
builder := NewConstructorBuilder ()
0 commit comments