Socket
Socket
Sign inDemoInstall

acorn

Package Overview
Dependencies
0
Maintainers
2
Versions
131
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.6.2 to 2.6.4

86

dist/acorn_loose.js

@@ -17,22 +17,13 @@ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}(g.acorn || (g.acorn = {})).loose = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){

lp.checkLVal = function (expr, binding) {
lp.checkLVal = function (expr) {
if (!expr) return expr;
switch (expr.type) {
case "Identifier":
case "MemberExpression":
return expr;
case "MemberExpression":
return binding ? this.dummyIdent() : expr;
case "ParenthesizedExpression":
expr.expression = this.checkLVal(expr.expression, binding);
expr.expression = this.checkLVal(expr.expression);
return expr;
// FIXME recursively check contents
case "ObjectPattern":
case "ArrayPattern":
case "RestElement":
case "AssignmentPattern":
if (this.options.ecmaVersion >= 6) return expr;
default:

@@ -443,28 +434,27 @@ return this.dummyIdent();

lp.toAssignable = function (node, binding) {
if (this.options.ecmaVersion >= 6 && node) {
switch (node.type) {
case "ObjectExpression":
node.type = "ObjectPattern";
var props = node.properties;
for (var i = 0; i < props.length; i++) {
this.toAssignable(props[i].value, binding);
}break;
case "ArrayExpression":
node.type = "ArrayPattern";
this.toAssignableList(node.elements, binding);
break;
case "SpreadElement":
node.type = "RestElement";
node.argument = this.toAssignable(node.argument, binding);
break;
case "AssignmentExpression":
node.type = "AssignmentPattern";
delete node.operator;
break;
if (!node || node.type == "Identifier" || node.type == "MemberExpression" && !binding) {
// Okay
} else if (node.type == "ParenthesizedExpression") {
node.expression = this.toAssignable(node.expression, binding);
} else if (this.options.ecmaVersion < 6) {
return this.dummyIdent();
} else if (node.type == "ObjectExpression") {
node.type = "ObjectPattern";
var props = node.properties;
for (var i = 0; i < props.length; i++) {
props[i].value = this.toAssignable(props[i].value, binding);
}
} else if (node.type == "ArrayExpression") {
node.type = "ArrayPattern";
this.toAssignableList(node.elements, binding);
} else if (node.type == "SpreadElement") {
node.type = "RestElement";
node.argument = this.toAssignable(node.argument, binding);
} else if (node.type == "AssignmentExpression") {
node.type = "AssignmentPattern";
delete node.operator;
} else {
return this.dummyIdent();
}
}
return this.checkLVal(node, binding);
return node;
};

@@ -583,2 +573,3 @@

exports.LooseParser = _state.LooseParser;
exports.pluginsLoose = _state.pluginsLoose;

@@ -595,2 +586,3 @@ acorn.defaultOptions.tabSize = 4;

acorn.LooseParser = _state.LooseParser;
acorn.pluginsLoose = _state.pluginsLoose;

@@ -616,2 +608,7 @@ },{"..":1,"./expression":2,"./state":5,"./statement":6,"./tokenize":7}],4:[function(_dereq_,module,exports){

// Registered plugins
var pluginsLoose = {};
exports.pluginsLoose = pluginsLoose;
var LooseParser = (function () {

@@ -634,2 +631,5 @@ function LooseParser(input, options) {

this.nextLineStart = this.lineEnd(this.curLineStart) + 1;
// Load plugins
this.options.pluginsLoose = options.pluginsLoose || {};
this.loadPlugins(this.options.pluginsLoose);
}

@@ -752,2 +752,14 @@

LooseParser.prototype.extend = function extend(name, f) {
this[name] = f(this[name]);
};
LooseParser.prototype.loadPlugins = function loadPlugins(pluginConfigs) {
for (var _name in pluginConfigs) {
var plugin = pluginsLoose[_name];
if (!plugin) throw new Error("Plugin '" + _name + "' not found");
plugin(this, pluginConfigs[_name]);
}
};
return LooseParser;

@@ -754,0 +766,0 @@ })();

@@ -6,3 +6,3 @@ {

"main": "dist/acorn.js",
"version": "2.6.2",
"version": "2.6.4",
"engines": {

@@ -9,0 +9,0 @@ "node": ">=0.4.0"

@@ -383,2 +383,15 @@ # Acorn

Similarly, the loose parser allows plugins to register themselves via
`acorn.pluginsLoose`. The extension mechanism is the same as for the
normal parser:
```javascript
looseParser.extend("readToken", function(nextMethod) {
return function() {
console.log("Reading a token in the loose parser!")
return nextMethod.call(this)
}
})
```
There is a proof-of-concept JSX plugin in the [`acorn-jsx`](https://github.com/RReverser/acorn-jsx) project.

@@ -39,3 +39,3 @@ // Acorn is a tiny, fast JavaScript parser written in JavaScript.

export const version = "2.6.2"
export const version = "2.6.4"

@@ -42,0 +42,0 @@ // The main exported interface (under `self.acorn` when in the

@@ -7,22 +7,13 @@ import {LooseParser} from "./state"

lp.checkLVal = function(expr, binding) {
lp.checkLVal = function(expr) {
if (!expr) return expr
switch (expr.type) {
case "Identifier":
case "MemberExpression":
return expr
case "MemberExpression":
return binding ? this.dummyIdent() : expr
case "ParenthesizedExpression":
expr.expression = this.checkLVal(expr.expression, binding)
expr.expression = this.checkLVal(expr.expression)
return expr
// FIXME recursively check contents
case "ObjectPattern":
case "ArrayPattern":
case "RestElement":
case "AssignmentPattern":
if (this.options.ecmaVersion >= 6) return expr
default:

@@ -430,28 +421,26 @@ return this.dummyIdent()

lp.toAssignable = function(node, binding) {
if (this.options.ecmaVersion >= 6 && node) {
switch (node.type) {
case "ObjectExpression":
node.type = "ObjectPattern"
let props = node.properties
for (let i = 0; i < props.length; i++)
this.toAssignable(props[i].value, binding)
break
case "ArrayExpression":
node.type = "ArrayPattern"
this.toAssignableList(node.elements, binding)
break
case "SpreadElement":
node.type = "RestElement"
node.argument = this.toAssignable(node.argument, binding)
break
case "AssignmentExpression":
node.type = "AssignmentPattern"
delete node.operator
break
}
if (!node || node.type == "Identifier" || (node.type == "MemberExpression" && !binding)) {
// Okay
} else if (node.type == "ParenthesizedExpression") {
node.expression = this.toAssignable(node.expression, binding)
} else if (this.options.ecmaVersion < 6) {
return this.dummyIdent()
} else if (node.type == "ObjectExpression") {
node.type = "ObjectPattern"
let props = node.properties
for (let i = 0; i < props.length; i++)
props[i].value = this.toAssignable(props[i].value, binding)
} else if (node.type == "ArrayExpression") {
node.type = "ArrayPattern"
this.toAssignableList(node.elements, binding)
} else if (node.type == "SpreadElement") {
node.type = "RestElement"
node.argument = this.toAssignable(node.argument, binding)
} else if (node.type == "AssignmentExpression") {
node.type = "AssignmentPattern"
delete node.operator
} else {
return this.dummyIdent()
}
return this.checkLVal(node, binding)
return node
}

@@ -458,0 +447,0 @@

@@ -33,3 +33,3 @@ // Acorn: Loose parser

import * as acorn from ".."
import {LooseParser} from "./state"
import {LooseParser, pluginsLoose} from "./state"
import "./tokenize"

@@ -39,3 +39,3 @@ import "./statement"

export {LooseParser} from "./state"
export {LooseParser, pluginsLoose} from "./state"

@@ -52,1 +52,2 @@ acorn.defaultOptions.tabSize = 4

acorn.LooseParser = LooseParser
acorn.pluginsLoose = pluginsLoose
import {tokenizer, SourceLocation, tokTypes as tt, Node, lineBreak, isNewLine} from ".."
// Registered plugins
export const pluginsLoose = {}
export class LooseParser {

@@ -18,2 +21,5 @@ constructor(input, options) {

this.nextLineStart = this.lineEnd(this.curLineStart) + 1
// Load plugins
this.options.pluginsLoose = options.pluginsLoose || {}
this.loadPlugins(this.options.pluginsLoose)
}

@@ -143,2 +149,14 @@

}
extend(name, f) {
this[name] = f(this[name])
}
loadPlugins(pluginConfigs) {
for (let name in pluginConfigs) {
let plugin = pluginsLoose[name]
if (!plugin) throw new Error("Plugin '" + name + "' not found")
plugin(this, pluginConfigs[name])
}
}
}

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc