Skip to content

Commit 8751900

Browse files
committed
List, refactor: switch to ...args syntax.
1 parent 9148441 commit 8751900

File tree

6 files changed

+48
-40
lines changed

6 files changed

+48
-40
lines changed

fibjs/include/DBResult.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ class DBResult : public DBResult_base {
3939
virtual result_t get_length(int32_t& retVal);
4040
virtual result_t resize(int32_t sz);
4141
virtual result_t push(Variant v, int32_t& retVal);
42-
virtual result_t push(const v8::FunctionCallbackInfo<v8::Value>& args, int32_t& retVal);
42+
virtual result_t push(v8::Local<v8::Array> els, int32_t& retVal);
4343
virtual result_t pushArray(v8::Local<v8::Array> data);
4444
virtual result_t indexOf(Variant searchElement, int32_t fromIndex, int32_t& retVal);
4545
virtual result_t lastIndexOf(Variant searchElement, int32_t fromIndex, int32_t& retVal);
4646
virtual result_t pop(Variant& retVal);
4747
virtual result_t slice(int32_t start, int32_t end, obj_ptr<List_base>& retVal);
48-
virtual result_t concat(const v8::FunctionCallbackInfo<v8::Value>& args, obj_ptr<List_base>& retVal);
48+
virtual result_t concat(v8::Local<v8::Array> lists, obj_ptr<List_base>& retVal);
4949
virtual result_t every(v8::Local<v8::Function> func, v8::Local<v8::Value> thisArg, bool& retVal);
5050
virtual result_t some(v8::Local<v8::Function> func, v8::Local<v8::Value> thisArg, bool& retVal);
5151
virtual result_t filter(v8::Local<v8::Function> func, v8::Local<v8::Value> thisArg, obj_ptr<List_base>& retVal);

fibjs/include/List.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ class List : public List_base {
3232
virtual result_t get_length(int32_t& retVal);
3333
virtual result_t resize(int32_t sz);
3434
virtual result_t push(Variant v, int32_t& retVal);
35-
virtual result_t push(const v8::FunctionCallbackInfo<v8::Value>& args, int32_t& retVal);
35+
virtual result_t push(v8::Local<v8::Array> els, int32_t& retVal);
3636
virtual result_t pushArray(v8::Local<v8::Array> data);
3737
virtual result_t indexOf(Variant searchElement, int32_t fromIndex, int32_t& retVal);
3838
virtual result_t lastIndexOf(Variant searchElement, int32_t fromIndex, int32_t& retVal);
3939
virtual result_t pop(Variant& retVal);
4040
virtual result_t slice(int32_t start, int32_t end, obj_ptr<List_base>& retVal);
41-
virtual result_t concat(const v8::FunctionCallbackInfo<v8::Value>& args, obj_ptr<List_base>& retVal);
41+
virtual result_t concat(v8::Local<v8::Array> lists, obj_ptr<List_base>& retVal);
4242
virtual result_t every(v8::Local<v8::Function> func, v8::Local<v8::Value> thisArg, bool& retVal);
4343
virtual result_t some(v8::Local<v8::Function> func, v8::Local<v8::Value> thisArg, bool& retVal);
4444
virtual result_t filter(v8::Local<v8::Function> func, v8::Local<v8::Value> thisArg, obj_ptr<List_base>& retVal);
@@ -69,6 +69,11 @@ class List : public List_base {
6969
push(newVal, r);
7070
}
7171

72+
void append(v8::Local<v8::Value> newVal)
73+
{
74+
append(Variant(newVal));
75+
}
76+
7277
private:
7378
v8::Local<v8::Value> _call(v8::Local<v8::Function> func,
7479
v8::Local<v8::Value> thisArg, int32_t i);

fibjs/include/ifs/List.h

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ class List_base : public object_base {
2929
virtual result_t get_length(int32_t& retVal) = 0;
3030
virtual result_t resize(int32_t sz) = 0;
3131
virtual result_t push(Variant v, int32_t& retVal) = 0;
32-
virtual result_t push(const v8::FunctionCallbackInfo<v8::Value>& args, int32_t& retVal) = 0;
32+
virtual result_t push(v8::Local<v8::Array> els, int32_t& retVal) = 0;
3333
virtual result_t indexOf(Variant searchElement, int32_t fromIndex, int32_t& retVal) = 0;
3434
virtual result_t lastIndexOf(Variant searchElement, int32_t fromIndex, int32_t& retVal) = 0;
3535
virtual result_t pushArray(v8::Local<v8::Array> data) = 0;
3636
virtual result_t pop(Variant& retVal) = 0;
3737
virtual result_t slice(int32_t start, int32_t end, obj_ptr<List_base>& retVal) = 0;
38-
virtual result_t concat(const v8::FunctionCallbackInfo<v8::Value>& args, obj_ptr<List_base>& retVal) = 0;
38+
virtual result_t concat(v8::Local<v8::Array> lists, obj_ptr<List_base>& retVal) = 0;
3939
virtual result_t every(v8::Local<v8::Function> func, v8::Local<v8::Value> thisArg, bool& retVal) = 0;
4040
virtual result_t some(v8::Local<v8::Function> func, v8::Local<v8::Value> thisArg, bool& retVal) = 0;
4141
virtual result_t filter(v8::Local<v8::Function> func, v8::Local<v8::Value> thisArg, obj_ptr<List_base>& retVal) = 0;
@@ -218,7 +218,9 @@ inline void List_base::s_push(const v8::FunctionCallbackInfo<v8::Value>& args)
218218

219219
METHOD_OVER(-1, 0);
220220

221-
hr = pInst->push(args, vr);
221+
ARG_LIST(0);
222+
223+
hr = pInst->push(v0, vr);
222224

223225
METHOD_RETURN();
224226
}
@@ -311,7 +313,9 @@ inline void List_base::s_concat(const v8::FunctionCallbackInfo<v8::Value>& args)
311313

312314
METHOD_OVER(-1, 0);
313315

314-
hr = pInst->concat(args, vr);
316+
ARG_LIST(0);
317+
318+
hr = pInst->concat(v0, vr);
315319

316320
METHOD_RETURN();
317321
}

fibjs/src/collection/List.cpp

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -138,16 +138,16 @@ result_t List::lastIndexOf(Variant searchElement, int32_t fromIndex, int32_t& re
138138
return 0;
139139
}
140140

141-
result_t List::push(const v8::FunctionCallbackInfo<v8::Value>& args, int32_t& retVal)
141+
result_t List::push(v8::Local<v8::Array> els, int32_t& retVal)
142142
{
143143
if (m_freeze)
144144
return CHECK_ERROR(CALL_E_INVALID_CALL);
145145

146-
int32_t len = args.Length();
147-
int32_t i, r;
146+
int32_t len = els->Length();
147+
int32_t i;
148148

149149
for (i = 0; i < len; i++)
150-
push(args[i], r);
150+
append(els->Get(i));
151151

152152
retVal = (int32_t)m_array.size();
153153
return 0;
@@ -159,10 +159,10 @@ result_t List::pushArray(v8::Local<v8::Array> data)
159159
return CHECK_ERROR(CALL_E_INVALID_CALL);
160160

161161
int32_t len = data->Length();
162-
int32_t i, r;
162+
int32_t i;
163163

164164
for (i = 0; i < len; i++)
165-
push(data->Get(i), r);
165+
append(data->Get(i));
166166
return 0;
167167
}
168168

@@ -180,38 +180,37 @@ result_t List::pop(Variant& retVal)
180180
return 0;
181181
}
182182

183-
result_t List::slice(int32_t start, int32_t end,
184-
obj_ptr<List_base>& retVal)
183+
result_t List::slice(int32_t start, int32_t end, obj_ptr<List_base>& retVal)
185184
{
186-
int32_t r;
187185
if (end < 0)
188186
end = (int32_t)m_array.size();
189187

190-
retVal = new List();
188+
obj_ptr<List> l = new List();
191189
while (start < end)
192-
retVal->push(m_array[start++], r);
190+
l->append(m_array[start++]);
191+
192+
retVal = l;
193193

194194
return 0;
195195
}
196196

197-
result_t List::concat(const v8::FunctionCallbackInfo<v8::Value>& args,
198-
obj_ptr<List_base>& retVal)
197+
result_t List::concat(v8::Local<v8::Array> lists, obj_ptr<List_base>& retVal)
199198
{
200199
if (m_freeze)
201200
return CHECK_ERROR(CALL_E_INVALID_CALL);
202201

203202
obj_ptr<List> a;
204-
int32_t i, len, r;
203+
int32_t i, len;
205204

206205
a = new List();
207206

208207
len = (int32_t)m_array.size();
209208
for (i = 0; i < len; i++)
210-
a->push(m_array[i], r);
209+
a->append(m_array[i]);
211210

212-
len = args.Length();
211+
len = lists->Length();
213212
for (i = 0; i < len; i++) {
214-
v8::Local<v8::Value> v = args[i];
213+
v8::Local<v8::Value> v = lists->Get(i);
215214
obj_ptr<List_base> a1 = List_base::getInstance(v);
216215

217216
if (a1) {
@@ -222,15 +221,15 @@ result_t List::concat(const v8::FunctionCallbackInfo<v8::Value>& args,
222221
Variant v1;
223222

224223
a1->_indexed_getter(i1, v1);
225-
a->push(v1, r);
224+
a->append(v1);
226225
}
227226
} else if (v->IsArray()) {
228227
int32_t i1, len1;
229228
v8::Local<v8::Array> arr = v8::Local<v8::Array>::Cast(v);
230229

231230
len1 = arr->Length();
232231
for (i1 = 0; i1 < len1; i1++)
233-
a->push(arr->Get(i1), r);
232+
a->append(arr->Get(i1));
234233
} else
235234
return CHECK_ERROR(CALL_E_INVALIDARG);
236235
}
@@ -296,7 +295,7 @@ result_t List::filter(v8::Local<v8::Function> func,
296295
v8::Local<v8::Value> thisArg, obj_ptr<List_base>& retVal)
297296
{
298297
obj_ptr<List> a;
299-
int32_t i, len, tmp;
298+
int32_t i, len;
300299

301300
a = new List();
302301

@@ -308,7 +307,7 @@ result_t List::filter(v8::Local<v8::Function> func,
308307
return CALL_E_JAVASCRIPT;
309308

310309
if (r->BooleanValue())
311-
a->push(m_array[i], tmp);
310+
a->append(m_array[i]);
312311
}
313312

314313
retVal = a;
@@ -336,7 +335,7 @@ result_t List::map(v8::Local<v8::Function> func,
336335
v8::Local<v8::Value> thisArg, obj_ptr<List_base>& retVal)
337336
{
338337
obj_ptr<List> a;
339-
int32_t i, len, tmp;
338+
int32_t i, len;
340339

341340
a = new List();
342341

@@ -347,7 +346,7 @@ result_t List::map(v8::Local<v8::Function> func,
347346
if (r.IsEmpty())
348347
return CALL_E_JAVASCRIPT;
349348

350-
a->push(r, tmp);
349+
a->append(r);
351350
}
352351

353352
retVal = a;

fibjs/src/db/sql/DBResult.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,12 @@ result_t DBResult::push(Variant v, int32_t& retVal)
7272
return m_array->push(v, retVal);
7373
}
7474

75-
result_t DBResult::push(const v8::FunctionCallbackInfo<v8::Value>& args, int32_t& retVal)
75+
result_t DBResult::push(v8::Local<v8::Array> els, int32_t& retVal)
7676
{
7777
if (!m_size)
7878
return CHECK_ERROR(CALL_E_INVALID_CALL);
7979

80-
return m_array->push(args, retVal);
80+
return m_array->push(els, retVal);
8181
}
8282

8383
result_t DBResult::pushArray(v8::Local<v8::Array> data)
@@ -104,12 +104,12 @@ result_t DBResult::slice(int32_t start, int32_t end, obj_ptr<List_base>& retVal)
104104
return m_array->slice(start, end, retVal);
105105
}
106106

107-
result_t DBResult::concat(const v8::FunctionCallbackInfo<v8::Value>& args, obj_ptr<List_base>& retVal)
107+
result_t DBResult::concat(v8::Local<v8::Array> lists, obj_ptr<List_base>& retVal)
108108
{
109109
if (!m_size)
110110
return CHECK_ERROR(CALL_E_INVALID_CALL);
111111

112-
return m_array->concat(args, retVal);
112+
return m_array->concat(lists, retVal);
113113
}
114114

115115
result_t DBResult::every(v8::Local<v8::Function> func,

idl/zh-cn/List.idl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ interface List : object
6060
*/
6161
Integer lastIndexOf(Variant searchElement, Integer fromIndex = 0);
6262

63-
/*! @brief 在数组结尾添加一个元素
64-
@param ... 指定添加的多个元素
63+
/*! @brief 在数组结尾添加多个元素
64+
@param els 指定添加的多个元素
6565
@return 添加元素之后数组的长度
6666
*/
67-
Integer push(...);
67+
Integer push(...els);
6868

6969
/*! @brief 在数组结尾添加一组元素
7070
@param data 添加的一组元素
@@ -84,10 +84,10 @@ interface List : object
8484
List slice(Integer start = 0, Integer end = -1);
8585

8686
/*! @brief 将当前数组与给定的一个或者多个数组合并
87-
@param ... 给定的一个或多个数组
87+
@param lists 给定的一个或多个数组
8888
@return 返回合并的数组
8989
*/
90-
List concat(...);
90+
List concat(...lists);
9191

9292
/*! @brief 检测全部数据是否通过测试函数
9393
@param func 测试函数

0 commit comments

Comments
 (0)