							value: self.recurse(property.value)
						});
					} else {
						args.push({
							key:
								property.key.type === AST.Identifier
									? property.key.name
									: "" + property.key.value,
							computed: false,
							value: self.recurse(property.value)
						});
					}
				});
				return function(scope, locals, assign, inputs) {
					var value = {};
					for (var i = 0; i < args.length; ++i) {
						if (args[i].computed) {
							value[args[i].key(scope, locals, assign, inputs)] = args[i].value(
								scope,
								locals,
								assign,
								inputs
							);
						} else {
							value[args[i].key] = args[i].value(scope, locals, assign, inputs);
						}
					}
					return context ? { value: value } : value;
				};
			case AST.ThisExpression:
				return function(scope) {
					return context ? { value: scope } : scope;
				};
			case AST.LocalsExpression:
				return function(scope, locals) {
					return context ? { value: locals } : locals;
				};
			case AST.NGValueParameter:
				return function(scope, locals, assign) {
					return context ? { value: assign } : assign;
				};
		}
	},
The software constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component.