Code coverage report for sc/lang/compiler/parser/partial-expr.js

Statements: 100% (19 / 19)      Branches: 100% (4 / 4)      Functions: 100% (2 / 2)      Lines: 100% (19 / 19)      Ignored: none     

All files » sc/lang/compiler/parser/ » partial-expr.js
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 391     1   1 1           1 581 127     454   454   454   451 8 8 12 12 12   8     451   451      
(function(sc) {
  "use strict";
 
  require("./parser");
 
  var Parser = sc.lang.compiler.Parser;
  var Node = sc.lang.compiler.Node;
 
  /*
    PartialExpression :
      BinaryExpression
  */
  Parser.addParseMethod("PartialExpression", function() {
    if (this.state.innerElements) {
      return this.parseBinaryExpression();
    }
 
    this.state.underscore = [];
 
    var marker = this.createMarker();
 
    var node = this.parseBinaryExpression();
 
    if (this.state.underscore.length) {
      var args = new Array(this.state.underscore.length);
      for (var i = 0, imax = args.length; i < imax; ++i) {
        var x = this.state.underscore[i];
        var y = Node.createVariableDeclarator(x);
        args[i] = this.createMarker(x).update(x).apply(y);
      }
      node = Node.createFunctionExpression({ list: args }, [ node ], { partial: true });
    }
 
    this.state.underscore = [];
 
    return marker.update().apply(node);
  });
})(sc);