| 
					
				 | 
			
			
				@@ -32,9 +32,9 @@ function assertExpectedResult(args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// run implementation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var result = args.expression.addToDocument({}, args.source, args.source); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	assertEqualJson(result, args.expected, "unexpected results"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var dependencies = args.expression.addDependencies([], [/*FAKING: includePath=true*/]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	dependencies.sort(), args.expectedDependencies.sort();	// NOTE: this is a minor hack added for munge because I'm pretty sure order doesn't matter for this anyhow 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	assertEqualJson(dependencies, args.expectedDependencies, "unexpected dependencies"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var dependencies = args.expression.addDependencies({}, [/*FAKING: includePath=true*/]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//dependencies.sort(), args.expectedDependencies.sort();	// NOTE: this is a minor hack added for munge because I'm pretty sure order doesn't matter for this anyhow 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assertEqualJson(Object.keys(dependencies).sort(), Object.keys(args.expectedDependencies).sort(), "unexpected dependencies"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	assertEqualJson(args.expression.toJson(true), args.expectedJsonRepresentation, "unexpected JSON representation"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	assertEqualJson(args.expression.getIsSimple(), args.expectedIsSimple, "unexpected isSimple status"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -60,20 +60,20 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				/** Dependencies for non inclusion expressions. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				var expr = new ObjectExpression(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				expr.addField("a", new ConstantExpression(5)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assertEqualJson(expr.addDependencies([], [/*FAKING: includePath=true*/]), ["_id"], "unexpected dependencies (including _id)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assertEqualJson(expr.addDependencies([]), [], "unexpected dependencies (excluding _id)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assertEqualJson(expr.addDependencies({}, [/*FAKING: includePath=true*/]), {"_id":1}, "unexpected dependencies (including _id)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assertEqualJson(expr.addDependencies({}), {}, "unexpected dependencies (excluding _id)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				expr.addField("b", new FieldPathExpression("c.d")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assertEqualJson(expr.addDependencies([], [/*FAKING: includePath=true*/]), ["c.d", "_id"], "unexpected dependencies (including _id)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assertEqualJson(expr.addDependencies([]), ["c.d"], "unexpected dependencies (excluding _id)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assertEqualJson(expr.addDependencies({}, [/*FAKING: includePath=true*/]), {"c.d":1, "_id":1}, "unexpected dependencies (including _id)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assertEqualJson(expr.addDependencies({}), {"c.d":1}, "unexpected dependencies (excluding _id)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			"should be able to get dependencies for inclusion expressions": function testInclusionDependencies(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				/** Dependencies for inclusion expressions. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				var expr = new ObjectExpression(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				expr.includePath( "a" ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				assertEqualJson(expr.addDependencies([], [/*FAKING: includePath=true*/]), ["_id", "a"], "unexpected dependencies (including _id)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				assertEqualJson(expr.addDependencies({}, [/*FAKING: includePath=true*/]), {"_id":1, "a":1}, "unexpected dependencies (including _id)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				assert.throws(function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expr.addDependencies([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expr.addDependencies({}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}, Error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -114,7 +114,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				assertExpectedResult({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -126,7 +126,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				assertExpectedResult({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id", "a"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1, "a":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -139,7 +139,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0, "b":2}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id", "a"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1, "a":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -151,7 +151,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				assertExpectedResult({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"_id":true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -164,7 +164,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				assertExpectedResult({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"b":2}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["b"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"b":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"_id":false, "b":true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -177,7 +177,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				assertExpectedResult({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					get expected() { return this.source; }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id", "a", "b"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1, "a":1, "b":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"b":true, "a":true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -190,7 +190,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0, "a":{ "b":5, "c":6}, "z":2 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{ "b":5} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id", "a.b"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1, "a.b":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":{ "b":true} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -204,7 +204,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0, "a":{ "b":5, "c":6}, "z":2 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{ "b":5, "c":6} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id", "a.b", "a.c"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1, "a.b":1, "a.c":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":{ "b":true, "c":true} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -218,7 +218,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0, "a":{ "b":5 }, "c":{"d":6} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{ "b":5}, "c":{"d":6} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id", "a.b", "c.d"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1, "a.b":1, "c.d":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":{"b":true}, "c":{"d":true} } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -231,7 +231,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0, "a":{ "c":6}, "z":2 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id", "a.b"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1, "a.b":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":{ "b":true} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -244,7 +244,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0, "a":2, "z":2}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id", "a.b"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1, "a.b":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":{ "b":true} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -257,7 +257,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {_id:0,a:[{b:5,c:6},{b:2,c:9},{c:7},[],2],z:1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {_id:0,a:[{b:5},{b:2},{}]}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id", "a.b"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1, "a.b":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":{ "b":true} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -270,7 +270,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0, "a":{ "_id":1, "b":1} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{ "b":1} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id", "a.b"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1, "a.b":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":{ "b":true} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -283,7 +283,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":5}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":{ "$const":5} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -297,7 +297,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0, "a":99}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id": 0, "a": 5}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a": {"$const": 5}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -311,7 +311,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {a:{$const:undefined}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -325,7 +325,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0, "a":99}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":5}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":{"$const":5}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -339,7 +339,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":null}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":{"$const":null}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -353,7 +353,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{"b":5}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":{"b":{"$const":5}}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -367,7 +367,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0, "x":4}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":4}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id", "x"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1, "x":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":"$x"}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -381,7 +381,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0, "x":{"y":4}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{"b":4}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id", "x.y"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1, "x.y":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {"a":{"b":"$x.y"}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -398,7 +398,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {a:{b:{$const:undefined}}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -415,7 +415,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{ "b":6} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {a:{b:{$const:6}}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -430,7 +430,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{ "b":6, "c":7} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {a:{b:{$const:6},c:{$const:7}}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -447,7 +447,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{ "b":6, "c":7} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {a:{b:{$const:6},c:{$const:7}}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -464,7 +464,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{ "b":6, "c":7} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {a:{b:{$const:6},c:{$const:7}}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -483,7 +483,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{ "b":6, "c":7} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {a:{b:{$const:6},c:{$const:7}}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -502,7 +502,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{ "b":6, "d":7, "c":8} }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {a:{b:{$const:6},d:{$const:7},c:{$const:8}}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -521,7 +521,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					source: {"_id":0}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expression: expr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expected: {"_id":0, "a":{ "b":{ "c":6, "d":7}}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					expectedDependencies: ["_id"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					expectedDependencies: {"_id":1}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedJsonRepresentation: {a:{b:{c:{$const:6},d:{$const:7}}}}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					expectedIsSimple: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}); 
			 |