inScope(params, fn) {
		const oldScope = this.scope;
		this.scope = {
			topLevelScope: oldScope.topLevelScope,
			inTry: false,
			inShorthand: false,
			inTaggedTemplateTag: false,
			isStrict: oldScope.isStrict,
			isAsmJs: oldScope.isAsmJs,
			terminated: undefined,
			definitions: oldScope.definitions.createChild()
		};

		this.undefineVariable("this");

		this.enterPatterns(params, ident => {
			this.defineVariable(ident);
		});

		fn();

		this.scope = oldScope;
	}
@deprecated
@param {(string | Pattern | Property)[]} params scope params
@param {() => void} fn inner function
@returns {void}