mirror of
https://github.com/QuiteAFancyEmerald/Holy-Unblocker.git
synced 2025-05-12 11:30:01 -04:00
22 lines
No EOL
1.1 KiB
JavaScript
22 lines
No EOL
1.1 KiB
JavaScript
const { Syntax } = require('./esotope');
|
|
const { createCallExpression, createIdentifier, createLiteral } = require('./node-builder');
|
|
const { shouldRewriteProperty } = require('./utils');
|
|
|
|
module.exports = {
|
|
type: Syntax.MemberExpression,
|
|
condition: (node, parent) => {
|
|
if (parent.type == 'UpdateExpression' && ['--', '++'].includes(parent.operator)) return false;
|
|
if (parent.type == 'UnaryExpression' && parent.operator == 'delete') return false;
|
|
if (parent.type == 'NewExpression' && parent.callee == node) return false;
|
|
if (parent.type === 'CallExpression' && parent.callee === node) return false;
|
|
if (parent.type == 'AssignmentExpression' && parent.left == node) return false;
|
|
if (node.object.type == 'Super') return false;
|
|
return shouldRewriteProperty(node);
|
|
},
|
|
run: node => {
|
|
let key = node.property;
|
|
if (key.type == 'Identifier' && !node.computed) key = createLiteral(key.name);
|
|
Object.assign(node, createCallExpression(createIdentifier('__get$'), [ node.object, key, ]));
|
|
return true;
|
|
},
|
|
}; |