website/libs/handlebars.dev.js
function(key) {
				var value = this.popStack(),
					context,
					type;

				if (this.options.stringParams) {
					type = this.popStack();
					context = this.popStack();
				}

				var hash = this.hash;
				if (context) {
					hash.contexts.push("'" + key + "': " + context);
				}
				if (type) {
					hash.types.push("'" + key + "': " + type);
				}
				hash.values.push("'" + key + "': (" + value + ")");
			}
function(key) {
				var value = this.popStack(),
					context,
					type;

				if (this.options.stringParams) {
					type = this.popStack();
					context = this.popStack();
				}

				var hash = this.hash;
				if (context) {
					hash.contexts.push("'" + key + "': " + context);
				}
				if (type) {
					hash.types.push("'" + key + "': " + type);
				}
				hash.values.push("'" + key + "': (" + value + ")");
			}
[assignToHash]  On stack, before: value, hash, ... On stack, after: hash, ...  Pops a value and hash off the stack, assigns `hash[key] = value` and pushes the hash back onto the stack.