Kaynağa Gözat

EAGLESIX-2712: minor changes and comments

Jake Delaney 11 yıl önce
ebeveyn
işleme
59ff441135
1 değiştirilmiş dosya ile 7 ekleme ve 2 silme
  1. 7 2
      lib/pipeline/expressions/MapExpression.js

+ 7 - 2
lib/pipeline/expressions/MapExpression.js

@@ -45,14 +45,17 @@ klass.parse = function parse(expr, vpsIn){
 		throw new Error("Unrecognized parameter to $map: " + bogus.join(",") + "- 16879");
 	}
 
+	// parse "input"
 	var input = Expression.parseOperand(inputElem, vpsIn);
 
+	// parse "as"
 	var vpsSub = new VariablesParseState(vpsIn),
 		varName = asElem;
 
 	Variables.uassertValidNameForUserWrite(varName);
 	var varId = vpsSub.defineVariable(varName);
 
+	// parse ""in
 	var invert = Expression.parseOperand(inElem, vpsSub);
 
 	return new MapExpression(varName, varId, input, invert);
@@ -72,13 +75,15 @@ proto.serialize = function serialize(explain) {
 };
 
 proto.evaluateInternal = function evaluateInternal(vars) {
+
+	// guaranteed at parse time that this isn't using our _varId
 	var inputVal = this._input.evaluateInternal(vars);
-	if( inputVal === null) {
+	if( inputVal === null || inputVal === undefined) {
 		return null;
 	}
 
 	if(!(inputVal instanceof Array)) {
-		throw new Error("Input to $map must be an Array, not a ____ 16883");
+		throw new Error("Input to $map must be an Array, not a " + typeof inputVal + " 16883");
 	}
 
 	if(inputVal.length === 0) {