Skip to content

Commit a4395c3

Browse files
committed
Fix position of "Adjacent JSX" error; move out entities.
1 parent 393424e commit a4395c3

File tree

4 files changed

+263
-262
lines changed

4 files changed

+263
-262
lines changed

inject.js

Lines changed: 6 additions & 260 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
'use strict';
22

3+
var XHTMLEntities = require('./xhtml');
4+
5+
var hexNumber = /^[\da-fA-F]+$/;
6+
var decimalNumber = /^\d+$/;
7+
38
module.exports = function(acorn) {
49
var tt = acorn.tokTypes;
510
var tc = acorn.tokContexts;
@@ -111,265 +116,6 @@ module.exports = function(acorn) {
111116
return this.finishToken(tt.string, out);
112117
};
113118

114-
var XHTMLEntities = {
115-
quot: '\u0022',
116-
amp: '&',
117-
apos: '\u0027',
118-
lt: '<',
119-
gt: '>',
120-
nbsp: '\u00A0',
121-
iexcl: '\u00A1',
122-
cent: '\u00A2',
123-
pound: '\u00A3',
124-
curren: '\u00A4',
125-
yen: '\u00A5',
126-
brvbar: '\u00A6',
127-
sect: '\u00A7',
128-
uml: '\u00A8',
129-
copy: '\u00A9',
130-
ordf: '\u00AA',
131-
laquo: '\u00AB',
132-
not: '\u00AC',
133-
shy: '\u00AD',
134-
reg: '\u00AE',
135-
macr: '\u00AF',
136-
deg: '\u00B0',
137-
plusmn: '\u00B1',
138-
sup2: '\u00B2',
139-
sup3: '\u00B3',
140-
acute: '\u00B4',
141-
micro: '\u00B5',
142-
para: '\u00B6',
143-
middot: '\u00B7',
144-
cedil: '\u00B8',
145-
sup1: '\u00B9',
146-
ordm: '\u00BA',
147-
raquo: '\u00BB',
148-
frac14: '\u00BC',
149-
frac12: '\u00BD',
150-
frac34: '\u00BE',
151-
iquest: '\u00BF',
152-
Agrave: '\u00C0',
153-
Aacute: '\u00C1',
154-
Acirc: '\u00C2',
155-
Atilde: '\u00C3',
156-
Auml: '\u00C4',
157-
Aring: '\u00C5',
158-
AElig: '\u00C6',
159-
Ccedil: '\u00C7',
160-
Egrave: '\u00C8',
161-
Eacute: '\u00C9',
162-
Ecirc: '\u00CA',
163-
Euml: '\u00CB',
164-
Igrave: '\u00CC',
165-
Iacute: '\u00CD',
166-
Icirc: '\u00CE',
167-
Iuml: '\u00CF',
168-
ETH: '\u00D0',
169-
Ntilde: '\u00D1',
170-
Ograve: '\u00D2',
171-
Oacute: '\u00D3',
172-
Ocirc: '\u00D4',
173-
Otilde: '\u00D5',
174-
Ouml: '\u00D6',
175-
times: '\u00D7',
176-
Oslash: '\u00D8',
177-
Ugrave: '\u00D9',
178-
Uacute: '\u00DA',
179-
Ucirc: '\u00DB',
180-
Uuml: '\u00DC',
181-
Yacute: '\u00DD',
182-
THORN: '\u00DE',
183-
szlig: '\u00DF',
184-
agrave: '\u00E0',
185-
aacute: '\u00E1',
186-
acirc: '\u00E2',
187-
atilde: '\u00E3',
188-
auml: '\u00E4',
189-
aring: '\u00E5',
190-
aelig: '\u00E6',
191-
ccedil: '\u00E7',
192-
egrave: '\u00E8',
193-
eacute: '\u00E9',
194-
ecirc: '\u00EA',
195-
euml: '\u00EB',
196-
igrave: '\u00EC',
197-
iacute: '\u00ED',
198-
icirc: '\u00EE',
199-
iuml: '\u00EF',
200-
eth: '\u00F0',
201-
ntilde: '\u00F1',
202-
ograve: '\u00F2',
203-
oacute: '\u00F3',
204-
ocirc: '\u00F4',
205-
otilde: '\u00F5',
206-
ouml: '\u00F6',
207-
divide: '\u00F7',
208-
oslash: '\u00F8',
209-
ugrave: '\u00F9',
210-
uacute: '\u00FA',
211-
ucirc: '\u00FB',
212-
uuml: '\u00FC',
213-
yacute: '\u00FD',
214-
thorn: '\u00FE',
215-
yuml: '\u00FF',
216-
OElig: '\u0152',
217-
oelig: '\u0153',
218-
Scaron: '\u0160',
219-
scaron: '\u0161',
220-
Yuml: '\u0178',
221-
fnof: '\u0192',
222-
circ: '\u02C6',
223-
tilde: '\u02DC',
224-
Alpha: '\u0391',
225-
Beta: '\u0392',
226-
Gamma: '\u0393',
227-
Delta: '\u0394',
228-
Epsilon: '\u0395',
229-
Zeta: '\u0396',
230-
Eta: '\u0397',
231-
Theta: '\u0398',
232-
Iota: '\u0399',
233-
Kappa: '\u039A',
234-
Lambda: '\u039B',
235-
Mu: '\u039C',
236-
Nu: '\u039D',
237-
Xi: '\u039E',
238-
Omicron: '\u039F',
239-
Pi: '\u03A0',
240-
Rho: '\u03A1',
241-
Sigma: '\u03A3',
242-
Tau: '\u03A4',
243-
Upsilon: '\u03A5',
244-
Phi: '\u03A6',
245-
Chi: '\u03A7',
246-
Psi: '\u03A8',
247-
Omega: '\u03A9',
248-
alpha: '\u03B1',
249-
beta: '\u03B2',
250-
gamma: '\u03B3',
251-
delta: '\u03B4',
252-
epsilon: '\u03B5',
253-
zeta: '\u03B6',
254-
eta: '\u03B7',
255-
theta: '\u03B8',
256-
iota: '\u03B9',
257-
kappa: '\u03BA',
258-
lambda: '\u03BB',
259-
mu: '\u03BC',
260-
nu: '\u03BD',
261-
xi: '\u03BE',
262-
omicron: '\u03BF',
263-
pi: '\u03C0',
264-
rho: '\u03C1',
265-
sigmaf: '\u03C2',
266-
sigma: '\u03C3',
267-
tau: '\u03C4',
268-
upsilon: '\u03C5',
269-
phi: '\u03C6',
270-
chi: '\u03C7',
271-
psi: '\u03C8',
272-
omega: '\u03C9',
273-
thetasym: '\u03D1',
274-
upsih: '\u03D2',
275-
piv: '\u03D6',
276-
ensp: '\u2002',
277-
emsp: '\u2003',
278-
thinsp: '\u2009',
279-
zwnj: '\u200C',
280-
zwj: '\u200D',
281-
lrm: '\u200E',
282-
rlm: '\u200F',
283-
ndash: '\u2013',
284-
mdash: '\u2014',
285-
lsquo: '\u2018',
286-
rsquo: '\u2019',
287-
sbquo: '\u201A',
288-
ldquo: '\u201C',
289-
rdquo: '\u201D',
290-
bdquo: '\u201E',
291-
dagger: '\u2020',
292-
Dagger: '\u2021',
293-
bull: '\u2022',
294-
hellip: '\u2026',
295-
permil: '\u2030',
296-
prime: '\u2032',
297-
Prime: '\u2033',
298-
lsaquo: '\u2039',
299-
rsaquo: '\u203A',
300-
oline: '\u203E',
301-
frasl: '\u2044',
302-
euro: '\u20AC',
303-
image: '\u2111',
304-
weierp: '\u2118',
305-
real: '\u211C',
306-
trade: '\u2122',
307-
alefsym: '\u2135',
308-
larr: '\u2190',
309-
uarr: '\u2191',
310-
rarr: '\u2192',
311-
darr: '\u2193',
312-
harr: '\u2194',
313-
crarr: '\u21B5',
314-
lArr: '\u21D0',
315-
uArr: '\u21D1',
316-
rArr: '\u21D2',
317-
dArr: '\u21D3',
318-
hArr: '\u21D4',
319-
forall: '\u2200',
320-
part: '\u2202',
321-
exist: '\u2203',
322-
empty: '\u2205',
323-
nabla: '\u2207',
324-
isin: '\u2208',
325-
notin: '\u2209',
326-
ni: '\u220B',
327-
prod: '\u220F',
328-
sum: '\u2211',
329-
minus: '\u2212',
330-
lowast: '\u2217',
331-
radic: '\u221A',
332-
prop: '\u221D',
333-
infin: '\u221E',
334-
ang: '\u2220',
335-
and: '\u2227',
336-
or: '\u2228',
337-
cap: '\u2229',
338-
cup: '\u222A',
339-
'int': '\u222B',
340-
there4: '\u2234',
341-
sim: '\u223C',
342-
cong: '\u2245',
343-
asymp: '\u2248',
344-
ne: '\u2260',
345-
equiv: '\u2261',
346-
le: '\u2264',
347-
ge: '\u2265',
348-
sub: '\u2282',
349-
sup: '\u2283',
350-
nsub: '\u2284',
351-
sube: '\u2286',
352-
supe: '\u2287',
353-
oplus: '\u2295',
354-
otimes: '\u2297',
355-
perp: '\u22A5',
356-
sdot: '\u22C5',
357-
lceil: '\u2308',
358-
rceil: '\u2309',
359-
lfloor: '\u230A',
360-
rfloor: '\u230B',
361-
lang: '\u2329',
362-
rang: '\u232A',
363-
loz: '\u25CA',
364-
spades: '\u2660',
365-
clubs: '\u2663',
366-
hearts: '\u2665',
367-
diams: '\u2666'
368-
};
369-
370-
var hexNumber = /^[\da-fA-F]+$/;
371-
var decimalNumber = /^\d+$/;
372-
373119
pp.jsx_readEntity = function() {
374120
var str = '', count = 0, entity;
375121
var ch = this.input[this.pos];
@@ -603,7 +349,7 @@ module.exports = function(acorn) {
603349
node.closingElement = closingElement;
604350
node.children = children;
605351
if (this.type === tt.relational && this.value === "<") {
606-
this.raise(this.pos, "Adjacent JSX elements must be wrapped in an enclosing tag");
352+
this.raise(this.start, "Adjacent JSX elements must be wrapped in an enclosing tag");
607353
}
608354
return this.finishNode(node, 'JSXElement');
609355
};

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"description": "Alternative, faster React.js JSX parser",
44
"homepage": "https://github.com/RReverser/acorn-jsx",
55
"main": "acorn.js",
6-
"version": "1.0.2",
6+
"version": "1.0.3",
77
"maintainers": [
88
{
99
"name": "Ingvar Stepanyan",

test/tests-jsx.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3636,7 +3636,7 @@ if (typeof exports !== "undefined") {
36363636
var testFail = require("./driver.js").testFail;
36373637
}
36383638

3639-
testFail("var x = <div>one</div><div>two</div>;", "Adjacent JSX elements must be wrapped in an enclosing tag (1:23)");
3639+
testFail("var x = <div>one</div><div>two</div>;", "Adjacent JSX elements must be wrapped in an enclosing tag (1:22)");
36403640

36413641
for (var ns in fbTestFixture) {
36423642
ns = fbTestFixture[ns];

0 commit comments

Comments
 (0)