Skip to content

Commit 12ae8fe

Browse files
authored
Parameterize dummy value and export isDummy
1 parent fa3ad8c commit 12ae8fe

File tree

5 files changed

+13
-4
lines changed

5 files changed

+13
-4
lines changed

acorn-loose/README.md

+4
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,7 @@ take the **`LooseParser`** class exported by the module, and call its
6060
static `extend` method with one or more plugins to get a customized
6161
parser class. The class has a static `parse` method that acts like the
6262
top-level `parse` method.
63+
64+
**isDummy**`(node)` takes a `Node` and returns `true` if it is a dummy node
65+
inserted by the parser. The function performs a simple equality check on the
66+
node's name.

acorn-loose/src/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import "./statement"
3636
import "./expression"
3737

3838
export {LooseParser} from "./state"
39+
export {isDummy} from "./parseutil"
3940

4041
defaultOptions.tabSize = 4
4142

acorn-loose/src/parseutil.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
export function isDummy(node) { return node.name === "✖" }
1+
export const dummyValue = "✖"
2+
3+
export function isDummy(node) { return node.name === dummyValue }

acorn-loose/src/state.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {Parser, SourceLocation, tokTypes as tt, Node, lineBreak, isNewLine} from "acorn"
2+
import {dummyValue} from "./parseutil"
23

34
function noop() {}
45

@@ -63,13 +64,13 @@ export class LooseParser {
6364

6465
dummyIdent() {
6566
let dummy = this.dummyNode("Identifier")
66-
dummy.name = "✖"
67+
dummy.name = dummyValue
6768
return dummy
6869
}
6970

7071
dummyString() {
7172
let dummy = this.dummyNode("Literal")
72-
dummy.value = dummy.raw = "✖"
73+
dummy.value = dummy.raw = dummyValue
7374
return dummy
7475
}
7576

acorn-loose/src/tokenize.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {tokTypes as tt, Token, isNewLine, SourceLocation, getLineInfo, lineBreakG} from "acorn"
22
import {LooseParser} from "./state"
3+
import {dummyValue} from "./parseutil"
34

45
const lp = LooseParser.prototype
56

@@ -73,7 +74,7 @@ lp.readToken = function() {
7374
throw e
7475
}
7576
this.resetTo(pos)
76-
if (replace === true) replace = {start: pos, end: pos, type: tt.name, value: "✖"}
77+
if (replace === true) replace = {start: pos, end: pos, type: tt.name, value: dummyValue}
7778
if (replace) {
7879
if (this.options.locations)
7980
replace.loc = new SourceLocation(

0 commit comments

Comments
 (0)