All files / src/elm nullological.coffee

100% Statements 13/13
50% Branches 2/4
100% Functions 7/7
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 3119x   1x   7920x         1x   37x         1x   64x     16x 12x     4x 3x   2x    
{ Expression } = require './expression'
 
module.exports.Null = class Null extends Expression
  constructor: (json) ->
    super
 
  exec: (ctx) ->
    null
 
module.exports.IsNull = class IsNull extends Expression
  constructor: (json) ->
    super
 
  exec: (ctx) ->
    not @execArgs(ctx)?
 
module.exports.Coalesce = class Coalesce extends Expression
  constructor: (json) ->
    super
 
  exec: (ctx) ->
    for arg in @args
      result = arg.execute(ctx)
      # if a single arg that's a list, coalesce over the list
      if @args.length == 1 && Array.isArray(result)
        for item in result
          if item? then return item
      else
        if result? then return result
    null