1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
return unless Object.defineProperty
v = \foo
o =
key:~
-> @x
(@x) ->
(v):~
(@y) ->
-> @y
ok \key of o
eq 1, o.key = 1
eq 1, o.key
ok \foo of o
eq 2, o.foo = 2
eq 2, o.foo
o <<< a:~ -> 1
eq 1, o.a
class A
p: -> if it? then @_ = it else @_
class C extends A
p:~
\ -> super!
(z) -> super z
c = new C
eq c.p = 3, c.p
ok c.hasOwnProperty \_
compileThrows 'excess accessor parameter' 1 'p:~ (a, b) ->'
compileThrows 'named accessor' 1 'p:~ ~function f then'
# No implicit parameter on getter.
eq '''({
get p(){
return it;
}
});''' LiveScript.compile 'p:~ -> it' {+bare,-header}
compileThrows 'duplicate property "p"' 2 '''
p:~ ->
p:~ (_) ->
'''
compileThrows 'duplicate property "p"' 2 '''
p: 1
p:~ ->
'''
compileThrows 'duplicate property "p"' 2 '''
p:~ ->
p: 1
'''
compileThrows 'invalid accessor parameter' 2 '''
p:~
->
->
'''
compileThrows 'invalid accessor parameter' 2 '''
p:~
(_) ->
(_) ->
'''
|