aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2022-04-24 11:26:46 +0800
committerLi Jin <dragon-fly@qq.com>2022-04-24 11:26:46 +0800
commitfe6d146bc4454d8096ddd0543d7142db3da5da5b (patch)
treedcdc4d08a8934b1b306e60f9f802ff11f22ce22b /spec
parent84b93d0e43e7248fd00df6957d55a954c48628d7 (diff)
downloadyuescript-fe6d146bc4454d8096ddd0543d7142db3da5da5b.tar.gz
yuescript-fe6d146bc4454d8096ddd0543d7142db3da5da5b.tar.bz2
yuescript-fe6d146bc4454d8096ddd0543d7142db3da5da5b.zip
fix spreading syntax behavior.
Diffstat (limited to 'spec')
-rw-r--r--spec/inputs/tables.yue25
-rw-r--r--spec/outputs/tables.lua102
2 files changed, 127 insertions, 0 deletions
diff --git a/spec/inputs/tables.yue b/spec/inputs/tables.yue
index 4cd9b4d..649c1dc 100644
--- a/spec/inputs/tables.yue
+++ b/spec/inputs/tables.yue
@@ -237,5 +237,30 @@ menus =
237 click: -> 237 click: ->
238 } 238 }
239 239
240tb = {...other}
241
242tbMix = {
243 1, 2, 3
244 ... with item
245 .x = 1
246 \func!
247 "a", "b", "c"
248 ...func?!
249 key: "value"
250 ... -- perform the Lua table behavior here
251}
252
253tbMixA = {
254 ...[i for i = 1, 10]
255 11
256}
257
258tbMixB = {
259 ... ... -- only the first item in vararg been accessed here
260 ... {...}
261 ... {......}
262 1, 2, 3
263}
264
240nil 265nil
241 266
diff --git a/spec/outputs/tables.lua b/spec/outputs/tables.lua
index 086e8b3..b820122 100644
--- a/spec/outputs/tables.lua
+++ b/spec/outputs/tables.lua
@@ -348,4 +348,106 @@ local menus = {
348 } 348 }
349 } 349 }
350} 350}
351local tb
352do
353 local _tab_0 = { }
354 local _list_0 = other
355 for _index_0 = 1, #_list_0 do
356 local _value_0 = _list_0[_index_0]
357 _tab_0[#_tab_0 + 1] = _value_0
358 end
359 tb = _tab_0
360end
361local tbMix
362do
363 local _tab_0 = {
364 1,
365 2,
366 3
367 }
368 local _obj_0
369 do
370 local _with_0 = item
371 _with_0.x = 1
372 _with_0:func()
373 _obj_0 = _with_0
374 end
375 for _index_0 = 1, #_obj_0 do
376 local _value_0 = _obj_0[_index_0]
377 _tab_0[#_tab_0 + 1] = _value_0
378 end
379 _tab_0[#_tab_0 + 1] = "a"
380 _tab_0[#_tab_0 + 1] = "b"
381 _tab_0[#_tab_0 + 1] = "c"
382 local _obj_1
383 do
384 local _obj_2 = func
385 if _obj_2 ~= nil then
386 _obj_1 = _obj_2()
387 end
388 end
389 for _index_0 = 1, #_obj_1 do
390 local _value_0 = _obj_1[_index_0]
391 _tab_0[#_tab_0 + 1] = _value_0
392 end
393 _tab_0.key = "value"
394 for _index_0 = 1, select('#', ...) do
395 _tab_0[#_tab_0 + 1] = select(_index_0, ...)
396 end
397 tbMix = _tab_0
398end
399local tbMixA
400do
401 local _tab_0 = { }
402 local _obj_0
403 do
404 local _accum_0 = { }
405 local _len_0 = 1
406 for i = 1, 10 do
407 _accum_0[_len_0] = i
408 _len_0 = _len_0 + 1
409 end
410 _obj_0 = _accum_0
411 end
412 for _index_0 = 1, #_obj_0 do
413 local _value_0 = _obj_0[_index_0]
414 _tab_0[#_tab_0 + 1] = _value_0
415 end
416 _tab_0[#_tab_0 + 1] = 11
417 tbMixA = _tab_0
418end
419local tbMixB
420do
421 local _tab_0 = { }
422 local _obj_0 = ...
423 for _index_0 = 1, #_obj_0 do
424 local _value_0 = _obj_0[_index_0]
425 _tab_0[#_tab_0 + 1] = _value_0
426 end
427 local _obj_1 = {
428 ...
429 }
430 for _index_0 = 1, #_obj_1 do
431 local _value_0 = _obj_1[_index_0]
432 _tab_0[#_tab_0 + 1] = _value_0
433 end
434 local _obj_2
435 do
436 local _tab_1 = { }
437 local _obj_3 = ...
438 for _index_0 = 1, #_obj_3 do
439 local _value_0 = _obj_3[_index_0]
440 _tab_1[#_tab_1 + 1] = _value_0
441 end
442 _obj_2 = _tab_1
443 end
444 for _index_0 = 1, #_obj_2 do
445 local _value_0 = _obj_2[_index_0]
446 _tab_0[#_tab_0 + 1] = _value_0
447 end
448 _tab_0[#_tab_0 + 1] = 1
449 _tab_0[#_tab_0 + 1] = 2
450 _tab_0[#_tab_0 + 1] = 3
451 tbMixB = _tab_0
452end
351return nil 453return nil