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

test: merged "expressions" into "chaining" and "returns"

This commit is contained in:
satyr 2010-10-26 09:08:16 +09:00
parent b84063bc3f
commit cb5642945a
4 changed files with 37 additions and 42 deletions

View file

@ -72,7 +72,6 @@
'compilation'
'comprehensions'
'existence'
'expressions'
'functions'
'helpers'
'heredocs'

View file

@ -7,6 +7,17 @@ result = identityWrap(identityWrap(true))()()
ok result
# Should be able to look at prototypes on keywords.
obj =
withAt: -> @::prop
withThis: -> this::prop
proto:
prop: 100
obj.prototype = obj.proto
eq obj.withAt() , 100
eq obj.withThis(), 100
# Chained accesses split on period/newline, backwards and forwards.
str = 'god'

View file

@ -1,40 +0,0 @@
# Ensure that we don't wrap Nodes that are "pureStatement" in a closure.
items = [1, 2, 3, "bacon", 4, 5]
for item in items
break if item is "bacon"
findit = (items) ->
for item in items
return item if item is "bacon"
ok findit(items) is "bacon"
# When when a closure wrapper is generated for expression conversion, make sure
# that references to "this" within the wrapper are safely converted as well.
obj = {
num: 5
func: ->
this.result = if false
10
else
"a"
"b"
this.num
}
ok obj.num is obj.func()
ok obj.num is obj.result
# Should be able to look at prototypes on keywords.
obj =
withAt: -> @::prop
withThis: -> this::prop
proto:
prop: 100
obj.prototype = obj.proto
ok obj.withAt() is 100
ok obj.withThis() is 100

View file

@ -30,4 +30,29 @@ func = ->
when 'a' then 42
else return 23
ok func() is 42
eq func(), 42
# Ensure that we don't wrap Nodes that are "pureStatement" in a closure.
items = [1, 2, 3, "bacon", 4, 5]
findit = (items) ->
for item in items
return item if item is "bacon"
ok findit(items) is "bacon"
# When a closure wrapper is generated for expression conversion, make sure
# that references to "this" within the wrapper are safely converted as well.
obj =
num: 5
func: ->
this.result = if false
10
else
"a"
"b"
this.num
eq obj.num, obj.func()
eq obj.num, obj.result