Socket
Socket
Sign inDemoInstall

@babel/helper-member-expression-to-functions

Package Overview
Dependencies
Maintainers
5
Versions
77
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/helper-member-expression-to-functions - npm Package Compare versions

Comparing version 7.0.0-beta.47 to 7.0.0-beta.48

82

lib/index.js

@@ -11,3 +11,3 @@ "use strict";

t = function t() {
t = function () {
return data;

@@ -21,7 +21,46 @@ };

class AssignmentMemoiser {
constructor() {
this._map = new WeakMap();
}
has(key) {
return this._map.has(key);
}
get(key) {
if (!this.has(key)) return;
const record = this._map.get(key);
const {
value
} = record;
record.count--;
if (record.count === 0) {
return t().assignmentExpression("=", value, key);
}
return value;
}
set(key, value, count) {
return this._map.set(key, {
count,
value
});
}
}
const handle = {
memoise() {},
handle(member) {
const node = member.node,
parent = member.parent,
parentPath = member.parentPath;
const {
node,
parent,
parentPath
} = member;

@@ -31,9 +70,7 @@ if (parentPath.isUpdateExpression({

})) {
const operator = parent.operator,
prefix = parent.prefix;
if (this.memoize) {
this.memoize(member);
}
const {
operator,
prefix
} = parent;
this.memoise(member, 2);
const value = t().binaryExpression(operator[0], t().unaryExpression("+", this.get(member)), t().numericLiteral(1));

@@ -44,3 +81,5 @@

} else {
const scope = member.scope;
const {
scope
} = member;
const ref = scope.generateUidIdentifierBasedOnNode(node);

@@ -60,11 +99,10 @@ scope.push({

})) {
const operator = parent.operator,
right = parent.right;
const {
operator,
right
} = parent;
let value = right;
if (operator !== "=") {
if (this.memoize) {
this.memoize(member);
}
this.memoise(member, 2);
value = t().binaryExpression(operator.slice(0, -1), this.get(member), value);

@@ -80,3 +118,5 @@ }

})) {
const args = parent.arguments;
const {
arguments: args
} = parent;
parentPath.replaceWith(this.call(member, args));

@@ -92,3 +132,5 @@ return;

function memberExpressionToFunctions(path, visitor, state) {
path.traverse(visitor, Object.assign({}, state, handle));
path.traverse(visitor, Object.assign({}, handle, state, {
memoiser: new AssignmentMemoiser()
}));
}
{
"name": "@babel/helper-member-expression-to-functions",
"version": "7.0.0-beta.47",
"version": "7.0.0-beta.48",
"description": "Helper function to replace certain member expressions with function calls",

@@ -10,4 +10,4 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-member-expression-to-functions",

"dependencies": {
"@babel/types": "7.0.0-beta.47"
"@babel/types": "7.0.0-beta.48"
}
}

@@ -29,3 +29,3 @@ # @babel/helper-member-expression-to-functions

// `call`.
// Optionally, a special `memoize` method may be defined, which gets
// Optionally, a special `memoise` method may be defined, which gets
// called if the member is in a self-referential update expression.

@@ -59,6 +59,6 @@ // Everything else will be passed through as normal.

memoize(memberPath) {
memoise(memberPath) {
const { node } = memberPath;
if (node.computed) {
MEMOIZED.set(node, ...);
MEMOISED.set(node, ...);
}

@@ -65,0 +65,0 @@ },

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc