2010-03-02 05:43:01 +00:00
|
|
|
a: [((x) -> x), ((x) -> x * x)]
|
2009-12-30 23:09:43 +00:00
|
|
|
|
2010-02-17 00:45:25 +00:00
|
|
|
ok a.length is 2
|
2010-01-01 14:49:18 +00:00
|
|
|
|
|
|
|
|
|
|
|
regex: /match/i
|
|
|
|
words: "I think there is a match in here."
|
|
|
|
|
2010-02-17 00:45:25 +00:00
|
|
|
ok !!words.match(regex)
|
2010-01-01 15:17:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
neg: (3 -4)
|
|
|
|
|
2010-02-17 00:45:25 +00:00
|
|
|
ok neg is -1
|
2010-01-07 02:21:42 +00:00
|
|
|
|
|
|
|
|
2010-05-31 19:13:48 +00:00
|
|
|
# Decimal number literals.
|
|
|
|
value: .25 + .75
|
|
|
|
ok value is 1
|
|
|
|
value: 0.0 + -.25 - -.75 + 0.0
|
|
|
|
ok value is 0.5
|
|
|
|
|
|
|
|
# Decimals don't interfere with ranges.
|
|
|
|
ok [0..10].join(' ') is '0 1 2 3 4 5 6 7 8 9 10'
|
|
|
|
ok [0...10].join(' ') is '0 1 2 3 4 5 6 7 8 9'
|
|
|
|
|
|
|
|
|
2010-06-01 02:56:51 +00:00
|
|
|
# Can call methods directly on numbers.
|
|
|
|
4.toFixed(10) is '4.0000000000'
|
|
|
|
|
|
|
|
|
2010-01-26 15:52:05 +00:00
|
|
|
func: ->
|
2010-01-07 02:21:42 +00:00
|
|
|
return if true
|
|
|
|
|
2010-02-17 00:45:25 +00:00
|
|
|
ok func() is null
|
2010-01-07 04:15:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
str: "\\"
|
|
|
|
reg: /\\/
|
|
|
|
|
2010-02-17 00:45:25 +00:00
|
|
|
ok reg(str) and str is '\\'
|
2010-01-09 16:58:50 +00:00
|
|
|
|
2010-06-12 23:05:13 +00:00
|
|
|
trailingComma: [1, 2, 3,]
|
|
|
|
ok (trailingComma[0] is 1) and (trailingComma[2] is 3) and (trailingComma.length is 3)
|
2010-03-26 15:44:25 +00:00
|
|
|
|
2010-06-12 23:05:13 +00:00
|
|
|
trailingComma: [
|
2010-03-26 18:11:34 +00:00
|
|
|
1, 2, 3,
|
|
|
|
4, 5, 6
|
|
|
|
7, 8, 9,
|
|
|
|
]
|
2010-06-12 23:05:13 +00:00
|
|
|
(sum: (sum or 0) + n) for n in trailingComma
|
2010-03-26 18:11:34 +00:00
|
|
|
|
2010-06-12 23:05:13 +00:00
|
|
|
trailingComma: {k1: "v1", k2: 4, k3: (-> true),}
|
|
|
|
ok trailingComma.k3() and (trailingComma.k2 is 4) and (trailingComma.k1 is "v1")
|
2010-01-09 16:58:50 +00:00
|
|
|
|
2010-05-12 22:28:40 +00:00
|
|
|
multiline: {a: 15,
|
|
|
|
b: 26}
|
|
|
|
|
|
|
|
ok multiline.b is 26
|
|
|
|
|
|
|
|
|
2010-01-10 20:52:23 +00:00
|
|
|
money$: 'dollars'
|
|
|
|
|
2010-02-17 00:45:25 +00:00
|
|
|
ok money$ is 'dollars'
|
2010-02-03 01:36:46 +00:00
|
|
|
|
|
|
|
|
2010-03-09 03:25:06 +00:00
|
|
|
multiline: "one
|
|
|
|
two
|
|
|
|
three"
|
|
|
|
|
|
|
|
ok multiline is 'one two three'
|
|
|
|
|
|
|
|
|
2010-02-17 00:45:25 +00:00
|
|
|
ok {a: (num) -> num is 10 }.a 10
|
2010-02-16 00:13:08 +00:00
|
|
|
|
|
|
|
|
2010-04-03 14:39:32 +00:00
|
|
|
moe: {
|
|
|
|
name: 'Moe'
|
2010-02-03 01:36:46 +00:00
|
|
|
greet: (salutation) ->
|
|
|
|
salutation + " " + @name
|
|
|
|
hello: ->
|
2010-02-21 01:09:52 +00:00
|
|
|
@['greet'] "Hello"
|
2010-02-08 16:48:43 +00:00
|
|
|
10: 'number'
|
2010-02-03 01:36:46 +00:00
|
|
|
}
|
|
|
|
|
2010-04-03 14:39:32 +00:00
|
|
|
ok moe.hello() is "Hello Moe"
|
|
|
|
ok moe[10] is 'number'
|
|
|
|
|
|
|
|
moe.hello: ->
|
|
|
|
this['greet'] "Hello"
|
|
|
|
|
|
|
|
ok moe.hello() is 'Hello Moe'
|
2010-02-16 13:43:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
obj: {
|
2010-05-31 19:13:48 +00:00
|
|
|
is: -> yes,
|
|
|
|
'not': -> no,
|
2010-02-16 13:43:58 +00:00
|
|
|
}
|
|
|
|
|
2010-02-17 00:45:25 +00:00
|
|
|
ok obj.is()
|
|
|
|
ok not obj.not()
|
2010-06-09 04:37:23 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Funky indentation within non-comma-seperated arrays.
|
|
|
|
result: [['a']
|
|
|
|
{b: 'c'}]
|
|
|
|
|
|
|
|
ok result[0][0] is 'a'
|
|
|
|
ok result[1]['b'] is 'c'
|
2010-06-15 04:54:02 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Object literals should be able to include keywords.
|
2010-06-22 00:47:58 +00:00
|
|
|
obj: {class: 'höt'}
|
2010-06-15 04:54:02 +00:00
|
|
|
obj.function: 'dog'
|
|
|
|
|
2010-06-22 00:47:58 +00:00
|
|
|
ok obj.class + obj.function is 'hötdog'
|