Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80758 views
1
// from esprima-fb/esprima.js
2
3
var XHTMLEntities = {
4
quot: '\u0022',
5
amp: '&',
6
apos: "\u0027",
7
lt: "<",
8
gt: ">",
9
nbsp: "\u00A0",
10
iexcl: "\u00A1",
11
cent: "\u00A2",
12
pound: "\u00A3",
13
curren: "\u00A4",
14
yen: "\u00A5",
15
brvbar: "\u00A6",
16
sect: "\u00A7",
17
uml: "\u00A8",
18
copy: "\u00A9",
19
ordf: "\u00AA",
20
laquo: "\u00AB",
21
not: "\u00AC",
22
shy: "\u00AD",
23
reg: "\u00AE",
24
macr: "\u00AF",
25
deg: "\u00B0",
26
plusmn: "\u00B1",
27
sup2: "\u00B2",
28
sup3: "\u00B3",
29
acute: "\u00B4",
30
micro: "\u00B5",
31
para: "\u00B6",
32
middot: "\u00B7",
33
cedil: "\u00B8",
34
sup1: "\u00B9",
35
ordm: "\u00BA",
36
raquo: "\u00BB",
37
frac14: "\u00BC",
38
frac12: "\u00BD",
39
frac34: "\u00BE",
40
iquest: "\u00BF",
41
Agrave: "\u00C0",
42
Aacute: "\u00C1",
43
Acirc: "\u00C2",
44
Atilde: "\u00C3",
45
Auml: "\u00C4",
46
Aring: "\u00C5",
47
AElig: "\u00C6",
48
Ccedil: "\u00C7",
49
Egrave: "\u00C8",
50
Eacute: "\u00C9",
51
Ecirc: "\u00CA",
52
Euml: "\u00CB",
53
Igrave: "\u00CC",
54
Iacute: "\u00CD",
55
Icirc: "\u00CE",
56
Iuml: "\u00CF",
57
ETH: "\u00D0",
58
Ntilde: "\u00D1",
59
Ograve: "\u00D2",
60
Oacute: "\u00D3",
61
Ocirc: "\u00D4",
62
Otilde: "\u00D5",
63
Ouml: "\u00D6",
64
times: "\u00D7",
65
Oslash: "\u00D8",
66
Ugrave: "\u00D9",
67
Uacute: "\u00DA",
68
Ucirc: "\u00DB",
69
Uuml: "\u00DC",
70
Yacute: "\u00DD",
71
THORN: "\u00DE",
72
szlig: "\u00DF",
73
agrave: "\u00E0",
74
aacute: "\u00E1",
75
acirc: "\u00E2",
76
atilde: "\u00E3",
77
auml: "\u00E4",
78
aring: "\u00E5",
79
aelig: "\u00E6",
80
ccedil: "\u00E7",
81
egrave: "\u00E8",
82
eacute: "\u00E9",
83
ecirc: "\u00EA",
84
euml: "\u00EB",
85
igrave: "\u00EC",
86
iacute: "\u00ED",
87
icirc: "\u00EE",
88
iuml: "\u00EF",
89
eth: "\u00F0",
90
ntilde: "\u00F1",
91
ograve: "\u00F2",
92
oacute: "\u00F3",
93
ocirc: "\u00F4",
94
otilde: "\u00F5",
95
ouml: "\u00F6",
96
divide: "\u00F7",
97
oslash: "\u00F8",
98
ugrave: "\u00F9",
99
uacute: "\u00FA",
100
ucirc: "\u00FB",
101
uuml: "\u00FC",
102
yacute: "\u00FD",
103
thorn: "\u00FE",
104
yuml: "\u00FF",
105
OElig: "\u0152",
106
oelig: "\u0153",
107
Scaron: "\u0160",
108
scaron: "\u0161",
109
Yuml: "\u0178",
110
fnof: "\u0192",
111
circ: "\u02C6",
112
tilde: "\u02DC",
113
Alpha: "\u0391",
114
Beta: "\u0392",
115
Gamma: "\u0393",
116
Delta: "\u0394",
117
Epsilon: "\u0395",
118
Zeta: "\u0396",
119
Eta: "\u0397",
120
Theta: "\u0398",
121
Iota: "\u0399",
122
Kappa: "\u039A",
123
Lambda: "\u039B",
124
Mu: "\u039C",
125
Nu: "\u039D",
126
Xi: "\u039E",
127
Omicron: "\u039F",
128
Pi: "\u03A0",
129
Rho: "\u03A1",
130
Sigma: "\u03A3",
131
Tau: "\u03A4",
132
Upsilon: "\u03A5",
133
Phi: "\u03A6",
134
Chi: "\u03A7",
135
Psi: "\u03A8",
136
Omega: "\u03A9",
137
alpha: "\u03B1",
138
beta: "\u03B2",
139
gamma: "\u03B3",
140
delta: "\u03B4",
141
epsilon: "\u03B5",
142
zeta: "\u03B6",
143
eta: "\u03B7",
144
theta: "\u03B8",
145
iota: "\u03B9",
146
kappa: "\u03BA",
147
lambda: "\u03BB",
148
mu: "\u03BC",
149
nu: "\u03BD",
150
xi: "\u03BE",
151
omicron: "\u03BF",
152
pi: "\u03C0",
153
rho: "\u03C1",
154
sigmaf: "\u03C2",
155
sigma: "\u03C3",
156
tau: "\u03C4",
157
upsilon: "\u03C5",
158
phi: "\u03C6",
159
chi: "\u03C7",
160
psi: "\u03C8",
161
omega: "\u03C9",
162
thetasym: "\u03D1",
163
upsih: "\u03D2",
164
piv: "\u03D6",
165
ensp: "\u2002",
166
emsp: "\u2003",
167
thinsp: "\u2009",
168
zwnj: "\u200C",
169
zwj: "\u200D",
170
lrm: "\u200E",
171
rlm: "\u200F",
172
ndash: "\u2013",
173
mdash: "\u2014",
174
lsquo: "\u2018",
175
rsquo: "\u2019",
176
sbquo: "\u201A",
177
ldquo: "\u201C",
178
rdquo: "\u201D",
179
bdquo: "\u201E",
180
dagger: "\u2020",
181
Dagger: "\u2021",
182
bull: "\u2022",
183
hellip: "\u2026",
184
permil: "\u2030",
185
prime: "\u2032",
186
Prime: "\u2033",
187
lsaquo: "\u2039",
188
rsaquo: "\u203A",
189
oline: "\u203E",
190
frasl: "\u2044",
191
euro: "\u20AC",
192
image: "\u2111",
193
weierp: "\u2118",
194
real: "\u211C",
195
trade: "\u2122",
196
alefsym: "\u2135",
197
larr: "\u2190",
198
uarr: "\u2191",
199
rarr: "\u2192",
200
darr: "\u2193",
201
harr: "\u2194",
202
crarr: "\u21B5",
203
lArr: "\u21D0",
204
uArr: "\u21D1",
205
rArr: "\u21D2",
206
dArr: "\u21D3",
207
hArr: "\u21D4",
208
forall: "\u2200",
209
part: "\u2202",
210
exist: "\u2203",
211
empty: "\u2205",
212
nabla: "\u2207",
213
isin: "\u2208",
214
notin: "\u2209",
215
ni: "\u220B",
216
prod: "\u220F",
217
sum: "\u2211",
218
minus: "\u2212",
219
lowast: "\u2217",
220
radic: "\u221A",
221
prop: "\u221D",
222
infin: "\u221E",
223
ang: "\u2220",
224
and: "\u2227",
225
or: "\u2228",
226
cap: "\u2229",
227
cup: "\u222A",
228
"int": "\u222B",
229
there4: "\u2234",
230
sim: "\u223C",
231
cong: "\u2245",
232
asymp: "\u2248",
233
ne: "\u2260",
234
equiv: "\u2261",
235
le: "\u2264",
236
ge: "\u2265",
237
sub: "\u2282",
238
sup: "\u2283",
239
nsub: "\u2284",
240
sube: "\u2286",
241
supe: "\u2287",
242
oplus: "\u2295",
243
otimes: "\u2297",
244
perp: "\u22A5",
245
sdot: "\u22C5",
246
lceil: "\u2308",
247
rceil: "\u2309",
248
lfloor: "\u230A",
249
rfloor: "\u230B",
250
lang: "\u2329",
251
rang: "\u232A",
252
loz: "\u25CA",
253
spades: "\u2660",
254
clubs: "\u2663",
255
hearts: "\u2665",
256
diams: "\u2666"
257
};
258
259
module.exports = function decode(str) {
260
return str
261
.replace(/&#(\d+);?/g, function (_, code) {
262
return String.fromCharCode(parseInt(code, 10));
263
})
264
.replace(/&#[xX]([A-Fa-f0-9]+);?/g, function (_, hex) {
265
return String.fromCharCode(parseInt(hex, 16));
266
})
267
.replace(/&([^;\W]+;?)/g, function (m, e) {
268
var ee = e.replace(/;$/, '');
269
var entity = XHTMLEntities[e]
270
|| (e.match(/;$/) && XHTMLEntities[ee])
271
;
272
273
if (entity) {
274
return entity;
275
}
276
else {
277
return m;
278
}
279
})
280
}
281
282