Sha256: f535451773ba6a532ca2a2d4fc24f6e13c24edcc6877950f26ff3a0a26cfbc60

Contents?: true

Size: 1.69 KB

Versions: 10

Compression:

Stored size: 1.69 KB

Contents

# Assignment
# ----------

test "context property assignment (using @)", ->
  nonce = {}
  addMethod = ->
    @method = -> nonce
    this
  eq nonce, addMethod.call({}).method()

test "unassignable values", ->
  nonce = {}
  for nonref in ['', '""', '0', 'f()'].concat CoffeeScript.RESERVED
    eq nonce, (try CoffeeScript.compile "#{nonref} = v" catch e then nonce)

test "compound assignments should not declare", ->
  # TODO: make description more clear
  # TODO: remove reference to Math
  eq Math, (-> Math or= 0)()


#### Statements as Expressions

test "assign the result of a try/catch block", ->
  # multiline
  result = try
    nonexistent * missing
  catch error
    true
  eq true, result

  # single line
  result = try nonexistent * missing catch error then true
  eq true, result

test "conditionals", ->
  # assign inside the condition of a conditional statement
  nonce = {}
  if a = nonce then 1
  eq nonce, a
  1 if b = nonce
  eq nonce, b

  # assign the result of a conditional statement
  c = if true then nonce
  eq nonce, c

test "assign inside the condition of a `while` loop", ->
  nonce = {}
  count = 1
  a = nonce while count--
  eq nonce, a
  count = 1
  while count--
    b = nonce
  eq nonce, b


#### Compound Assignment

test "compound assignment (math operators)", ->
  num = 10
  num -= 5
  eq 5, num

  num *= 10
  eq 50, num

  num /= 10
  eq 5, num

  num %= 3
  eq 2, num

test "more compound assignment", ->
  a = {}
  val = undefined
  val ||= a
  val ||= true
  eq a, val

  b = {}
  val &&= true
  eq val, true
  val &&= b
  eq b, val

  c = {}
  val = null
  val ?= c
  val ?= true
  eq c, val


#### Destructuring Assignment

# NO TESTS?!
# TODO: make tests for destructuring assignment

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
spade-packager-0.1.0.1 packages/coffee-script/test/assignment.coffee
spade-packager-0.1.0 packages/coffee-script/test/assignment.coffee
spade-0.0.8.1 packages/coffee-script/test/assignment.coffee
spade-0.0.7 packages/coffee-script/test/assignment.coffee
spade-0.0.6 packages/coffee-script/test/assignment.coffee
spade-0.0.5 packages/coffee-script/test/assignment.coffee
spade-0.0.4 packages/coffee-script/test/assignment.coffee
spade-0.0.3 packages/coffee-script/test/assignment.coffee
spade-0.0.2 packages/coffee-script/test/assignment.coffee
spade-0.0.1 packages/coffee-script/test/assignment.coffee