(
nameOrPrefix: Name | string,
obj: Code,
forBody: (item: Name) => void,
varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const
)
| 635 | // `for-in` statement. |
| 636 | // With option `ownProperties` replaced with a `for-of` loop for object keys |
| 637 | forIn( |
| 638 | nameOrPrefix: Name | string, |
| 639 | obj: Code, |
| 640 | forBody: (item: Name) => void, |
| 641 | varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const |
| 642 | ): CodeGen { |
| 643 | if (this.opts.ownProperties) { |
| 644 | return this.forOf(nameOrPrefix, _`Object.keys(${obj})`, forBody) |
| 645 | } |
| 646 | const name = this._scope.toName(nameOrPrefix) |
| 647 | return this._for(new ForIter("in", varKind, name, obj), () => forBody(name)) |
| 648 | } |
| 649 | |
| 650 | // end `for` loop |
| 651 | endFor(): CodeGen { |
no test coverage detected