Sha256: 4e45cd71664248d9f4c782a1571b8dcdfa0604e632be03a6dc9409078809d62e
Contents?: true
Size: 810 Bytes
Versions: 4
Compression:
Stored size: 810 Bytes
Contents
import Node from '../Node.js'; import { loopStatement } from '../../utils/patterns.js'; export default class ThisExpression extends Node { initialise(transforms) { if (transforms.arrow) { const lexicalBoundary = this.findLexicalBoundary(); const arrowFunction = this.findNearest('ArrowFunctionExpression'); const loop = this.findNearest(loopStatement); if ( (arrowFunction && arrowFunction.depth > lexicalBoundary.depth) || (loop && loop.body.contains(this) && loop.depth > lexicalBoundary.depth) || (loop && loop.right && loop.right.contains(this)) ) { this.alias = lexicalBoundary.getThisAlias(); } } } transpile(code) { if (this.alias) { code.overwrite(this.start, this.end, this.alias, { storeName: true, contentOnly: true }); } } }
Version data entries
4 entries across 4 versions & 1 rubygems