1
0
Fork 0
mirror of https://github.com/jashkenas/coffeescript.git synced 2022-11-09 12:23:24 -05:00
jashkenas--coffeescript/test/array_literals.coffee

50 lines
979 B
CoffeeScript
Raw Normal View History

2010-12-29 14:06:57 -05:00
# Array Literals
# --------------
# * Array Literals
# * Splats in Array Literals
2010-12-30 22:48:31 -05:00
# TODO: refactor array literal tests
2011-01-03 04:17:00 -05:00
# TODO: add indexing and method invocation tests: [1][0] is 1, [].toString()
2010-12-30 22:48:31 -05:00
trailingComma = [1, 2, 3,]
ok (trailingComma[0] is 1) and (trailingComma[2] is 3) and (trailingComma.length is 3)
trailingComma = [
1, 2, 3,
4, 5, 6
7, 8, 9,
]
(sum = (sum or 0) + n) for n in trailingComma
a = [((x) -> x), ((x) -> x * x)]
ok a.length is 2
# Funky indentation within non-comma-seperated arrays.
result = [['a']
{b: 'c'}]
ok result[0][0] is 'a'
ok result[1]['b'] is 'c'
#### Splats in Array Literals
test "array splat expansions with assignments", ->
nums = [1, 2, 3]
list = [a = 0, nums..., b = 4]
eq 0, a
eq 4, b
arrayEq [0,1,2,3,4], list
2011-02-17 21:56:28 -05:00
test "array splats with nested arrays", ->
2011-02-18 07:15:40 -05:00
nonce = {}
a = [nonce]
2011-02-17 21:56:28 -05:00
list = [1, 2, a...]
eq list[0], 1
2011-02-18 07:15:40 -05:00
eq list[2], nonce
2011-02-17 21:56:28 -05:00
2011-02-18 07:15:40 -05:00
a = [[nonce]]
2011-02-17 21:56:28 -05:00
list = [1, 2, a...]
2011-02-18 07:15:40 -05:00
arrayEq list, [1, 2, [nonce]]
2011-02-17 21:56:28 -05:00