@@ -19,11 +19,12 @@ using namespace std;
19
19
using namespace tns ;
20
20
21
21
JSToJavaConverter::JSToJavaConverter (
22
+ v8::Isolate* isolate,
22
23
const FunctionCallbackInfo<v8::Value> &args,
23
24
const string &methodSignature,
24
25
MetadataEntry *entry)
25
26
:
26
- m_isolate(args.GetIsolate() ),
27
+ m_isolate(isolate ),
27
28
m_methodSignature(methodSignature) {
28
29
m_argsLen = args.Length ();
29
30
@@ -39,10 +40,9 @@ JSToJavaConverter::JSToJavaConverter(
39
40
std::vector<std::string> parsed = parser.Parse ();
40
41
m_tokens = new std::vector<std::string>();
41
42
m_tokens->reserve (parsed.size ());
42
- for (std::string& p : parsed) {
43
+ for (std::string &p : parsed) {
43
44
m_tokens->push_back (p);
44
45
}
45
- // std::copy(parsed.begin(), parsed.end(), m_tokens->begin());
46
46
}
47
47
48
48
for (int i = 0 ; i < m_argsLen; i++) {
@@ -52,12 +52,13 @@ JSToJavaConverter::JSToJavaConverter(
52
52
}
53
53
54
54
JSToJavaConverter::JSToJavaConverter (
55
+ v8::Isolate* isolate,
55
56
const v8::FunctionCallbackInfo<Value> &args,
56
57
const string &methodSignature,
57
58
MetadataEntry *entry,
58
59
const v8::Local<v8::Object> kotlinExtensionFunctionThis)
59
60
:
60
- m_isolate(args.GetIsolate() ),
61
+ m_isolate(isolate ),
61
62
m_methodSignature(methodSignature) {
62
63
63
64
int v8ProvidedArgumentsLength = args.Length ();
@@ -75,7 +76,7 @@ JSToJavaConverter::JSToJavaConverter(
75
76
auto parsed = parser.Parse ();
76
77
m_tokens = new std::vector<std::string>();
77
78
m_tokens->reserve (parsed.size ());
78
- for (std::string& p : parsed) {
79
+ for (std::string &p : parsed) {
79
80
m_tokens->push_back (p);
80
81
}
81
82
}
@@ -89,18 +90,19 @@ JSToJavaConverter::JSToJavaConverter(
89
90
}
90
91
91
92
JSToJavaConverter::JSToJavaConverter (
93
+ v8::Isolate* isolate,
92
94
const v8::FunctionCallbackInfo<Value> &args,
93
95
const string &methodSignature)
94
96
:
95
- m_isolate(args.GetIsolate() ),
97
+ m_isolate(isolate ),
96
98
m_methodSignature(methodSignature) {
97
99
m_argsLen = args.Length ();
98
100
99
101
JniSignatureParser parser (m_methodSignature);
100
102
auto parsed = parser.Parse ();
101
103
m_tokens = new std::vector<std::string>();
102
104
m_tokens->reserve (parsed.size ());
103
- for (std::string& p : parsed) {
105
+ for (std::string &p : parsed) {
104
106
m_tokens->push_back (p);
105
107
}
106
108
@@ -110,22 +112,20 @@ JSToJavaConverter::JSToJavaConverter(
110
112
}
111
113
112
114
bool JSToJavaConverter::ConvertArg (const Local<Value> &arg, int index) {
113
- const auto &typeSignature = m_tokens->at (index );
114
115
115
- if (arg->IsArray () && typeSignature[0 ] == ' [' ) {
116
- return tns::ConvertJavaScriptArray (
116
+
117
+ if (arg->IsNumber () || arg->IsNumberObject ()) {
118
+ return tns::ConvertJavaScriptNumber (
117
119
m_isolate,
118
120
arg,
119
121
index ,
120
122
m_tokens,
121
123
m_jniArgRefsState
122
124
);
123
- } else if (arg->IsNumber () || arg->IsNumberObject ()) {
124
- return tns::ConvertJavaScriptNumber (
125
- m_isolate,
125
+ } else if (arg->IsString () || arg->IsStringObject ()) {
126
+ return tns::ConvertJavaScriptString (
126
127
arg,
127
128
index ,
128
- m_tokens,
129
129
m_jniArgRefsState
130
130
);
131
131
} else if (arg->IsBoolean () || arg->IsBooleanObject ()) {
@@ -136,10 +136,12 @@ bool JSToJavaConverter::ConvertArg(const Local<Value> &arg, int index) {
136
136
m_tokens,
137
137
m_jniArgRefsState
138
138
);
139
- } else if (arg->IsString () || arg->IsStringObject ()) {
140
- return tns::ConvertJavaScriptString (
139
+ } else if (arg->IsArray () && m_tokens->at (index )[0 ] == ' [' ) {
140
+ return tns::ConvertJavaScriptArray (
141
+ m_isolate,
141
142
arg,
142
143
index ,
144
+ m_tokens,
143
145
m_jniArgRefsState
144
146
);
145
147
} else if (arg->IsObject ()) {
@@ -155,10 +157,11 @@ bool JSToJavaConverter::ConvertArg(const Local<Value> &arg, int index) {
155
157
} else if (arg->IsUndefined () || arg->IsNull ()) {
156
158
m_jniArgRefsState.SetConvertedObject (index , nullptr );
157
159
return true ;
158
- } else {
159
- m_jniArgRefsState.SetConvertedObject (index , nullptr );
160
- return false ;
161
160
}
161
+
162
+ m_jniArgRefsState.SetConvertedObject (index , nullptr );
163
+ return false ;
164
+
162
165
}
163
166
164
167
int JSToJavaConverter::Length () const {
0 commit comments