protobufjs 6.11.1 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/README.md +7 -174
  2. package/dist/light/protobuf.js +40 -16
  3. package/dist/light/protobuf.js.map +1 -1
  4. package/dist/light/protobuf.min.js +3 -3
  5. package/dist/light/protobuf.min.js.map +1 -1
  6. package/dist/minimal/protobuf.js +27 -10
  7. package/dist/minimal/protobuf.js.map +1 -1
  8. package/dist/minimal/protobuf.min.js +3 -3
  9. package/dist/minimal/protobuf.min.js.map +1 -1
  10. package/dist/protobuf.js +109 -46
  11. package/dist/protobuf.js.map +1 -1
  12. package/dist/protobuf.min.js +3 -3
  13. package/dist/protobuf.min.js.map +1 -1
  14. package/index.d.ts +1 -1
  15. package/package.json +11 -30
  16. package/scripts/postinstall.js +0 -3
  17. package/src/converter.js +1 -1
  18. package/src/decoder.js +4 -3
  19. package/src/field.js +3 -0
  20. package/src/namespace.js +1 -2
  21. package/src/parse.js +38 -14
  22. package/src/roots.js +1 -1
  23. package/src/tokenize.js +31 -16
  24. package/src/util/minimal.js +24 -7
  25. package/src/util.js +3 -0
  26. package/src/wrappers.js +2 -2
  27. package/CHANGELOG.md +0 -1014
  28. package/bin/pbjs +0 -6
  29. package/bin/pbts +0 -6
  30. package/cli/LICENSE +0 -33
  31. package/cli/README.md +0 -174
  32. package/cli/bin/pbjs +0 -6
  33. package/cli/bin/pbts +0 -6
  34. package/cli/index.d.ts +0 -3
  35. package/cli/index.js +0 -3
  36. package/cli/lib/tsd-jsdoc/LICENSE +0 -21
  37. package/cli/lib/tsd-jsdoc/README.md +0 -23
  38. package/cli/lib/tsd-jsdoc/plugin.js +0 -21
  39. package/cli/lib/tsd-jsdoc/publish.js +0 -705
  40. package/cli/lib/tsd-jsdoc.json +0 -18
  41. package/cli/node_modules/.package-lock.json +0 -256
  42. package/cli/node_modules/acorn/CHANGELOG.md +0 -620
  43. package/cli/node_modules/acorn/LICENSE +0 -21
  44. package/cli/node_modules/acorn/README.md +0 -269
  45. package/cli/node_modules/acorn/bin/acorn +0 -4
  46. package/cli/node_modules/acorn/dist/acorn.d.ts +0 -209
  47. package/cli/node_modules/acorn/dist/acorn.js +0 -5186
  48. package/cli/node_modules/acorn/dist/acorn.js.map +0 -1
  49. package/cli/node_modules/acorn/dist/acorn.mjs +0 -5155
  50. package/cli/node_modules/acorn/dist/acorn.mjs.d.ts +0 -2
  51. package/cli/node_modules/acorn/dist/acorn.mjs.map +0 -1
  52. package/cli/node_modules/acorn/dist/bin.js +0 -64
  53. package/cli/node_modules/acorn/package.json +0 -35
  54. package/cli/node_modules/acorn-jsx/LICENSE +0 -19
  55. package/cli/node_modules/acorn-jsx/README.md +0 -40
  56. package/cli/node_modules/acorn-jsx/index.js +0 -488
  57. package/cli/node_modules/acorn-jsx/package.json +0 -27
  58. package/cli/node_modules/acorn-jsx/xhtml.js +0 -255
  59. package/cli/node_modules/balanced-match/.npmignore +0 -5
  60. package/cli/node_modules/balanced-match/LICENSE.md +0 -21
  61. package/cli/node_modules/balanced-match/README.md +0 -91
  62. package/cli/node_modules/balanced-match/index.js +0 -59
  63. package/cli/node_modules/balanced-match/package.json +0 -49
  64. package/cli/node_modules/brace-expansion/LICENSE +0 -21
  65. package/cli/node_modules/brace-expansion/README.md +0 -129
  66. package/cli/node_modules/brace-expansion/index.js +0 -201
  67. package/cli/node_modules/brace-expansion/package.json +0 -47
  68. package/cli/node_modules/concat-map/.travis.yml +0 -4
  69. package/cli/node_modules/concat-map/LICENSE +0 -18
  70. package/cli/node_modules/concat-map/README.markdown +0 -62
  71. package/cli/node_modules/concat-map/example/map.js +0 -6
  72. package/cli/node_modules/concat-map/index.js +0 -13
  73. package/cli/node_modules/concat-map/package.json +0 -43
  74. package/cli/node_modules/concat-map/test/map.js +0 -39
  75. package/cli/node_modules/deep-is/.npmignore +0 -1
  76. package/cli/node_modules/deep-is/.travis.yml +0 -6
  77. package/cli/node_modules/deep-is/LICENSE +0 -22
  78. package/cli/node_modules/deep-is/README.markdown +0 -70
  79. package/cli/node_modules/deep-is/example/cmp.js +0 -11
  80. package/cli/node_modules/deep-is/index.js +0 -102
  81. package/cli/node_modules/deep-is/package.json +0 -61
  82. package/cli/node_modules/deep-is/test/NaN.js +0 -16
  83. package/cli/node_modules/deep-is/test/cmp.js +0 -23
  84. package/cli/node_modules/deep-is/test/neg-vs-pos-0.js +0 -15
  85. package/cli/node_modules/escodegen/LICENSE.BSD +0 -21
  86. package/cli/node_modules/escodegen/README.md +0 -84
  87. package/cli/node_modules/escodegen/bin/escodegen.js +0 -77
  88. package/cli/node_modules/escodegen/bin/esgenerate.js +0 -64
  89. package/cli/node_modules/escodegen/escodegen.js +0 -2647
  90. package/cli/node_modules/escodegen/package.json +0 -62
  91. package/cli/node_modules/eslint-visitor-keys/CHANGELOG.md +0 -25
  92. package/cli/node_modules/eslint-visitor-keys/LICENSE +0 -201
  93. package/cli/node_modules/eslint-visitor-keys/README.md +0 -98
  94. package/cli/node_modules/eslint-visitor-keys/lib/index.js +0 -81
  95. package/cli/node_modules/eslint-visitor-keys/lib/visitor-keys.json +0 -284
  96. package/cli/node_modules/eslint-visitor-keys/package.json +0 -40
  97. package/cli/node_modules/espree/CHANGELOG.md +0 -509
  98. package/cli/node_modules/espree/LICENSE +0 -25
  99. package/cli/node_modules/espree/README.md +0 -233
  100. package/cli/node_modules/espree/espree.js +0 -177
  101. package/cli/node_modules/espree/lib/ast-node-types.js +0 -96
  102. package/cli/node_modules/espree/lib/espree.js +0 -286
  103. package/cli/node_modules/espree/lib/features.js +0 -29
  104. package/cli/node_modules/espree/lib/options.js +0 -106
  105. package/cli/node_modules/espree/lib/token-translator.js +0 -263
  106. package/cli/node_modules/espree/lib/visitor-keys.js +0 -123
  107. package/cli/node_modules/espree/package.json +0 -64
  108. package/cli/node_modules/esprima/ChangeLog +0 -235
  109. package/cli/node_modules/esprima/LICENSE.BSD +0 -21
  110. package/cli/node_modules/esprima/README.md +0 -46
  111. package/cli/node_modules/esprima/bin/esparse.js +0 -139
  112. package/cli/node_modules/esprima/bin/esvalidate.js +0 -236
  113. package/cli/node_modules/esprima/dist/esprima.js +0 -6709
  114. package/cli/node_modules/esprima/package.json +0 -112
  115. package/cli/node_modules/estraverse/.jshintrc +0 -16
  116. package/cli/node_modules/estraverse/LICENSE.BSD +0 -19
  117. package/cli/node_modules/estraverse/README.md +0 -153
  118. package/cli/node_modules/estraverse/estraverse.js +0 -801
  119. package/cli/node_modules/estraverse/gulpfile.js +0 -70
  120. package/cli/node_modules/estraverse/package.json +0 -40
  121. package/cli/node_modules/esutils/LICENSE.BSD +0 -19
  122. package/cli/node_modules/esutils/README.md +0 -174
  123. package/cli/node_modules/esutils/lib/ast.js +0 -144
  124. package/cli/node_modules/esutils/lib/code.js +0 -135
  125. package/cli/node_modules/esutils/lib/keyword.js +0 -165
  126. package/cli/node_modules/esutils/lib/utils.js +0 -33
  127. package/cli/node_modules/esutils/package.json +0 -44
  128. package/cli/node_modules/fast-levenshtein/LICENSE.md +0 -25
  129. package/cli/node_modules/fast-levenshtein/README.md +0 -104
  130. package/cli/node_modules/fast-levenshtein/levenshtein.js +0 -136
  131. package/cli/node_modules/fast-levenshtein/package.json +0 -39
  132. package/cli/node_modules/fs.realpath/LICENSE +0 -43
  133. package/cli/node_modules/fs.realpath/README.md +0 -33
  134. package/cli/node_modules/fs.realpath/index.js +0 -66
  135. package/cli/node_modules/fs.realpath/old.js +0 -303
  136. package/cli/node_modules/fs.realpath/package.json +0 -26
  137. package/cli/node_modules/glob/LICENSE +0 -21
  138. package/cli/node_modules/glob/README.md +0 -375
  139. package/cli/node_modules/glob/changelog.md +0 -67
  140. package/cli/node_modules/glob/common.js +0 -240
  141. package/cli/node_modules/glob/glob.js +0 -790
  142. package/cli/node_modules/glob/package.json +0 -46
  143. package/cli/node_modules/glob/sync.js +0 -486
  144. package/cli/node_modules/inflight/LICENSE +0 -15
  145. package/cli/node_modules/inflight/README.md +0 -37
  146. package/cli/node_modules/inflight/inflight.js +0 -54
  147. package/cli/node_modules/inflight/package.json +0 -29
  148. package/cli/node_modules/inherits/LICENSE +0 -16
  149. package/cli/node_modules/inherits/README.md +0 -42
  150. package/cli/node_modules/inherits/inherits.js +0 -9
  151. package/cli/node_modules/inherits/inherits_browser.js +0 -27
  152. package/cli/node_modules/inherits/package.json +0 -29
  153. package/cli/node_modules/levn/LICENSE +0 -22
  154. package/cli/node_modules/levn/README.md +0 -196
  155. package/cli/node_modules/levn/lib/cast.js +0 -298
  156. package/cli/node_modules/levn/lib/coerce.js +0 -285
  157. package/cli/node_modules/levn/lib/index.js +0 -22
  158. package/cli/node_modules/levn/lib/parse-string.js +0 -113
  159. package/cli/node_modules/levn/lib/parse.js +0 -102
  160. package/cli/node_modules/levn/package.json +0 -47
  161. package/cli/node_modules/minimatch/LICENSE +0 -15
  162. package/cli/node_modules/minimatch/README.md +0 -209
  163. package/cli/node_modules/minimatch/minimatch.js +0 -923
  164. package/cli/node_modules/minimatch/package.json +0 -30
  165. package/cli/node_modules/once/LICENSE +0 -15
  166. package/cli/node_modules/once/README.md +0 -79
  167. package/cli/node_modules/once/once.js +0 -42
  168. package/cli/node_modules/once/package.json +0 -33
  169. package/cli/node_modules/optionator/CHANGELOG.md +0 -56
  170. package/cli/node_modules/optionator/LICENSE +0 -22
  171. package/cli/node_modules/optionator/README.md +0 -238
  172. package/cli/node_modules/optionator/lib/help.js +0 -260
  173. package/cli/node_modules/optionator/lib/index.js +0 -465
  174. package/cli/node_modules/optionator/lib/util.js +0 -54
  175. package/cli/node_modules/optionator/package.json +0 -44
  176. package/cli/node_modules/path-is-absolute/index.js +0 -20
  177. package/cli/node_modules/path-is-absolute/license +0 -21
  178. package/cli/node_modules/path-is-absolute/package.json +0 -43
  179. package/cli/node_modules/path-is-absolute/readme.md +0 -59
  180. package/cli/node_modules/prelude-ls/CHANGELOG.md +0 -99
  181. package/cli/node_modules/prelude-ls/LICENSE +0 -22
  182. package/cli/node_modules/prelude-ls/README.md +0 -15
  183. package/cli/node_modules/prelude-ls/lib/Func.js +0 -65
  184. package/cli/node_modules/prelude-ls/lib/List.js +0 -686
  185. package/cli/node_modules/prelude-ls/lib/Num.js +0 -130
  186. package/cli/node_modules/prelude-ls/lib/Obj.js +0 -154
  187. package/cli/node_modules/prelude-ls/lib/Str.js +0 -92
  188. package/cli/node_modules/prelude-ls/lib/index.js +0 -178
  189. package/cli/node_modules/prelude-ls/package.json +0 -52
  190. package/cli/node_modules/rimraf/CHANGELOG.md +0 -65
  191. package/cli/node_modules/rimraf/LICENSE +0 -15
  192. package/cli/node_modules/rimraf/README.md +0 -101
  193. package/cli/node_modules/rimraf/bin.js +0 -68
  194. package/cli/node_modules/rimraf/package.json +0 -32
  195. package/cli/node_modules/rimraf/rimraf.js +0 -360
  196. package/cli/node_modules/source-map/CHANGELOG.md +0 -301
  197. package/cli/node_modules/source-map/LICENSE +0 -28
  198. package/cli/node_modules/source-map/README.md +0 -742
  199. package/cli/node_modules/source-map/dist/source-map.debug.js +0 -3234
  200. package/cli/node_modules/source-map/dist/source-map.js +0 -3233
  201. package/cli/node_modules/source-map/dist/source-map.min.js +0 -2
  202. package/cli/node_modules/source-map/dist/source-map.min.js.map +0 -1
  203. package/cli/node_modules/source-map/lib/array-set.js +0 -121
  204. package/cli/node_modules/source-map/lib/base64-vlq.js +0 -140
  205. package/cli/node_modules/source-map/lib/base64.js +0 -67
  206. package/cli/node_modules/source-map/lib/binary-search.js +0 -111
  207. package/cli/node_modules/source-map/lib/mapping-list.js +0 -79
  208. package/cli/node_modules/source-map/lib/quick-sort.js +0 -114
  209. package/cli/node_modules/source-map/lib/source-map-consumer.js +0 -1145
  210. package/cli/node_modules/source-map/lib/source-map-generator.js +0 -425
  211. package/cli/node_modules/source-map/lib/source-node.js +0 -413
  212. package/cli/node_modules/source-map/lib/util.js +0 -488
  213. package/cli/node_modules/source-map/package.json +0 -73
  214. package/cli/node_modules/source-map/source-map.d.ts +0 -98
  215. package/cli/node_modules/source-map/source-map.js +0 -8
  216. package/cli/node_modules/tmp/CHANGELOG.md +0 -288
  217. package/cli/node_modules/tmp/LICENSE +0 -21
  218. package/cli/node_modules/tmp/README.md +0 -365
  219. package/cli/node_modules/tmp/lib/tmp.js +0 -780
  220. package/cli/node_modules/tmp/package.json +0 -58
  221. package/cli/node_modules/type-check/LICENSE +0 -22
  222. package/cli/node_modules/type-check/README.md +0 -210
  223. package/cli/node_modules/type-check/lib/check.js +0 -126
  224. package/cli/node_modules/type-check/lib/index.js +0 -16
  225. package/cli/node_modules/type-check/lib/parse-type.js +0 -196
  226. package/cli/node_modules/type-check/package.json +0 -40
  227. package/cli/node_modules/word-wrap/LICENSE +0 -21
  228. package/cli/node_modules/word-wrap/README.md +0 -182
  229. package/cli/node_modules/word-wrap/index.d.ts +0 -50
  230. package/cli/node_modules/word-wrap/index.js +0 -46
  231. package/cli/node_modules/word-wrap/package.json +0 -77
  232. package/cli/node_modules/wrappy/LICENSE +0 -15
  233. package/cli/node_modules/wrappy/README.md +0 -36
  234. package/cli/node_modules/wrappy/package.json +0 -29
  235. package/cli/node_modules/wrappy/wrappy.js +0 -33
  236. package/cli/package.json +0 -8
  237. package/cli/package.standalone.json +0 -32
  238. package/cli/pbjs.d.ts +0 -9
  239. package/cli/pbjs.js +0 -330
  240. package/cli/pbts.d.ts +0 -9
  241. package/cli/pbts.js +0 -197
  242. package/cli/targets/json-module.js +0 -38
  243. package/cli/targets/json.js +0 -8
  244. package/cli/targets/proto.js +0 -326
  245. package/cli/targets/proto2.js +0 -10
  246. package/cli/targets/proto3.js +0 -10
  247. package/cli/targets/static-module.js +0 -29
  248. package/cli/targets/static.js +0 -711
  249. package/cli/util.js +0 -183
  250. package/cli/wrappers/amd.js +0 -7
  251. package/cli/wrappers/closure.js +0 -7
  252. package/cli/wrappers/commonjs.js +0 -7
  253. package/cli/wrappers/default.js +0 -15
  254. package/cli/wrappers/es6.js +0 -5
@@ -1,70 +0,0 @@
1
- /*
2
- Copyright (C) 2014 Yusuke Suzuki <utatane.tea@gmail.com>
3
-
4
- Redistribution and use in source and binary forms, with or without
5
- modification, are permitted provided that the following conditions are met:
6
-
7
- * Redistributions of source code must retain the above copyright
8
- notice, this list of conditions and the following disclaimer.
9
- * Redistributions in binary form must reproduce the above copyright
10
- notice, this list of conditions and the following disclaimer in the
11
- documentation and/or other materials provided with the distribution.
12
-
13
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
14
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
17
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
20
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
- */
24
-
25
- 'use strict';
26
-
27
- var gulp = require('gulp'),
28
- git = require('gulp-git'),
29
- bump = require('gulp-bump'),
30
- filter = require('gulp-filter'),
31
- tagVersion = require('gulp-tag-version');
32
-
33
- var TEST = [ 'test/*.js' ];
34
- var POWERED = [ 'powered-test/*.js' ];
35
- var SOURCE = [ 'src/**/*.js' ];
36
-
37
- /**
38
- * Bumping version number and tagging the repository with it.
39
- * Please read http://semver.org/
40
- *
41
- * You can use the commands
42
- *
43
- * gulp patch # makes v0.1.0 -> v0.1.1
44
- * gulp feature # makes v0.1.1 -> v0.2.0
45
- * gulp release # makes v0.2.1 -> v1.0.0
46
- *
47
- * To bump the version numbers accordingly after you did a patch,
48
- * introduced a feature or made a backwards-incompatible release.
49
- */
50
-
51
- function inc(importance) {
52
- // get all the files to bump version in
53
- return gulp.src(['./package.json'])
54
- // bump the version number in those files
55
- .pipe(bump({type: importance}))
56
- // save it back to filesystem
57
- .pipe(gulp.dest('./'))
58
- // commit the changed version number
59
- .pipe(git.commit('Bumps package version'))
60
- // read only one file to get the version number
61
- .pipe(filter('package.json'))
62
- // **tag it in the repository**
63
- .pipe(tagVersion({
64
- prefix: ''
65
- }));
66
- }
67
-
68
- gulp.task('patch', [ ], function () { return inc('patch'); })
69
- gulp.task('minor', [ ], function () { return inc('minor'); })
70
- gulp.task('major', [ ], function () { return inc('major'); })
@@ -1,40 +0,0 @@
1
- {
2
- "name": "estraverse",
3
- "description": "ECMAScript JS AST traversal functions",
4
- "homepage": "https://github.com/estools/estraverse",
5
- "main": "estraverse.js",
6
- "version": "5.2.0",
7
- "engines": {
8
- "node": ">=4.0"
9
- },
10
- "maintainers": [
11
- {
12
- "name": "Yusuke Suzuki",
13
- "email": "utatane.tea@gmail.com",
14
- "web": "http://github.com/Constellation"
15
- }
16
- ],
17
- "repository": {
18
- "type": "git",
19
- "url": "http://github.com/estools/estraverse.git"
20
- },
21
- "devDependencies": {
22
- "babel-preset-env": "^1.6.1",
23
- "babel-register": "^6.3.13",
24
- "chai": "^2.1.1",
25
- "espree": "^1.11.0",
26
- "gulp": "^3.8.10",
27
- "gulp-bump": "^0.2.2",
28
- "gulp-filter": "^2.0.0",
29
- "gulp-git": "^1.0.1",
30
- "gulp-tag-version": "^1.3.0",
31
- "jshint": "^2.5.6",
32
- "mocha": "^2.1.0"
33
- },
34
- "license": "BSD-2-Clause",
35
- "scripts": {
36
- "test": "npm run-script lint && npm run-script unit-test",
37
- "lint": "jshint estraverse.js",
38
- "unit-test": "mocha --compilers js:babel-register"
39
- }
40
- }
@@ -1,19 +0,0 @@
1
- Redistribution and use in source and binary forms, with or without
2
- modification, are permitted provided that the following conditions are met:
3
-
4
- * Redistributions of source code must retain the above copyright
5
- notice, this list of conditions and the following disclaimer.
6
- * Redistributions in binary form must reproduce the above copyright
7
- notice, this list of conditions and the following disclaimer in the
8
- documentation and/or other materials provided with the distribution.
9
-
10
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
11
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
12
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
13
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
14
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
15
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
16
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
17
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
18
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
19
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,174 +0,0 @@
1
- ### esutils [![Build Status](https://secure.travis-ci.org/estools/esutils.svg)](http://travis-ci.org/estools/esutils)
2
- esutils ([esutils](http://github.com/estools/esutils)) is
3
- utility box for ECMAScript language tools.
4
-
5
- ### API
6
-
7
- ### ast
8
-
9
- #### ast.isExpression(node)
10
-
11
- Returns true if `node` is an Expression as defined in ECMA262 edition 5.1 section
12
- [11](https://es5.github.io/#x11).
13
-
14
- #### ast.isStatement(node)
15
-
16
- Returns true if `node` is a Statement as defined in ECMA262 edition 5.1 section
17
- [12](https://es5.github.io/#x12).
18
-
19
- #### ast.isIterationStatement(node)
20
-
21
- Returns true if `node` is an IterationStatement as defined in ECMA262 edition
22
- 5.1 section [12.6](https://es5.github.io/#x12.6).
23
-
24
- #### ast.isSourceElement(node)
25
-
26
- Returns true if `node` is a SourceElement as defined in ECMA262 edition 5.1
27
- section [14](https://es5.github.io/#x14).
28
-
29
- #### ast.trailingStatement(node)
30
-
31
- Returns `Statement?` if `node` has trailing `Statement`.
32
- ```js
33
- if (cond)
34
- consequent;
35
- ```
36
- When taking this `IfStatement`, returns `consequent;` statement.
37
-
38
- #### ast.isProblematicIfStatement(node)
39
-
40
- Returns true if `node` is a problematic IfStatement. If `node` is a problematic `IfStatement`, `node` cannot be represented as an one on one JavaScript code.
41
- ```js
42
- {
43
- type: 'IfStatement',
44
- consequent: {
45
- type: 'WithStatement',
46
- body: {
47
- type: 'IfStatement',
48
- consequent: {type: 'EmptyStatement'}
49
- }
50
- },
51
- alternate: {type: 'EmptyStatement'}
52
- }
53
- ```
54
- The above node cannot be represented as a JavaScript code, since the top level `else` alternate belongs to an inner `IfStatement`.
55
-
56
-
57
- ### code
58
-
59
- #### code.isDecimalDigit(code)
60
-
61
- Return true if provided code is decimal digit.
62
-
63
- #### code.isHexDigit(code)
64
-
65
- Return true if provided code is hexadecimal digit.
66
-
67
- #### code.isOctalDigit(code)
68
-
69
- Return true if provided code is octal digit.
70
-
71
- #### code.isWhiteSpace(code)
72
-
73
- Return true if provided code is white space. White space characters are formally defined in ECMA262.
74
-
75
- #### code.isLineTerminator(code)
76
-
77
- Return true if provided code is line terminator. Line terminator characters are formally defined in ECMA262.
78
-
79
- #### code.isIdentifierStart(code)
80
-
81
- Return true if provided code can be the first character of ECMA262 Identifier. They are formally defined in ECMA262.
82
-
83
- #### code.isIdentifierPart(code)
84
-
85
- Return true if provided code can be the trailing character of ECMA262 Identifier. They are formally defined in ECMA262.
86
-
87
- ### keyword
88
-
89
- #### keyword.isKeywordES5(id, strict)
90
-
91
- Returns `true` if provided identifier string is a Keyword or Future Reserved Word
92
- in ECMA262 edition 5.1. They are formally defined in ECMA262 sections
93
- [7.6.1.1](http://es5.github.io/#x7.6.1.1) and [7.6.1.2](http://es5.github.io/#x7.6.1.2),
94
- respectively. If the `strict` flag is truthy, this function additionally checks whether
95
- `id` is a Keyword or Future Reserved Word under strict mode.
96
-
97
- #### keyword.isKeywordES6(id, strict)
98
-
99
- Returns `true` if provided identifier string is a Keyword or Future Reserved Word
100
- in ECMA262 edition 6. They are formally defined in ECMA262 sections
101
- [11.6.2.1](http://ecma-international.org/ecma-262/6.0/#sec-keywords) and
102
- [11.6.2.2](http://ecma-international.org/ecma-262/6.0/#sec-future-reserved-words),
103
- respectively. If the `strict` flag is truthy, this function additionally checks whether
104
- `id` is a Keyword or Future Reserved Word under strict mode.
105
-
106
- #### keyword.isReservedWordES5(id, strict)
107
-
108
- Returns `true` if provided identifier string is a Reserved Word in ECMA262 edition 5.1.
109
- They are formally defined in ECMA262 section [7.6.1](http://es5.github.io/#x7.6.1).
110
- If the `strict` flag is truthy, this function additionally checks whether `id`
111
- is a Reserved Word under strict mode.
112
-
113
- #### keyword.isReservedWordES6(id, strict)
114
-
115
- Returns `true` if provided identifier string is a Reserved Word in ECMA262 edition 6.
116
- They are formally defined in ECMA262 section [11.6.2](http://ecma-international.org/ecma-262/6.0/#sec-reserved-words).
117
- If the `strict` flag is truthy, this function additionally checks whether `id`
118
- is a Reserved Word under strict mode.
119
-
120
- #### keyword.isRestrictedWord(id)
121
-
122
- Returns `true` if provided identifier string is one of `eval` or `arguments`.
123
- They are restricted in strict mode code throughout ECMA262 edition 5.1 and
124
- in ECMA262 edition 6 section [12.1.1](http://ecma-international.org/ecma-262/6.0/#sec-identifiers-static-semantics-early-errors).
125
-
126
- #### keyword.isIdentifierNameES5(id)
127
-
128
- Return true if provided identifier string is an IdentifierName as specified in
129
- ECMA262 edition 5.1 section [7.6](https://es5.github.io/#x7.6).
130
-
131
- #### keyword.isIdentifierNameES6(id)
132
-
133
- Return true if provided identifier string is an IdentifierName as specified in
134
- ECMA262 edition 6 section [11.6](http://ecma-international.org/ecma-262/6.0/#sec-names-and-keywords).
135
-
136
- #### keyword.isIdentifierES5(id, strict)
137
-
138
- Return true if provided identifier string is an Identifier as specified in
139
- ECMA262 edition 5.1 section [7.6](https://es5.github.io/#x7.6). If the `strict`
140
- flag is truthy, this function additionally checks whether `id` is an Identifier
141
- under strict mode.
142
-
143
- #### keyword.isIdentifierES6(id, strict)
144
-
145
- Return true if provided identifier string is an Identifier as specified in
146
- ECMA262 edition 6 section [12.1](http://ecma-international.org/ecma-262/6.0/#sec-identifiers).
147
- If the `strict` flag is truthy, this function additionally checks whether `id`
148
- is an Identifier under strict mode.
149
-
150
- ### License
151
-
152
- Copyright (C) 2013 [Yusuke Suzuki](http://github.com/Constellation)
153
- (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors.
154
-
155
- Redistribution and use in source and binary forms, with or without
156
- modification, are permitted provided that the following conditions are met:
157
-
158
- * Redistributions of source code must retain the above copyright
159
- notice, this list of conditions and the following disclaimer.
160
-
161
- * Redistributions in binary form must reproduce the above copyright
162
- notice, this list of conditions and the following disclaimer in the
163
- documentation and/or other materials provided with the distribution.
164
-
165
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
166
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
167
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
168
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
169
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
170
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
171
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
172
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
173
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
174
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,144 +0,0 @@
1
- /*
2
- Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>
3
-
4
- Redistribution and use in source and binary forms, with or without
5
- modification, are permitted provided that the following conditions are met:
6
-
7
- * Redistributions of source code must retain the above copyright
8
- notice, this list of conditions and the following disclaimer.
9
- * Redistributions in binary form must reproduce the above copyright
10
- notice, this list of conditions and the following disclaimer in the
11
- documentation and/or other materials provided with the distribution.
12
-
13
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
14
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
17
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
20
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
- */
24
-
25
- (function () {
26
- 'use strict';
27
-
28
- function isExpression(node) {
29
- if (node == null) { return false; }
30
- switch (node.type) {
31
- case 'ArrayExpression':
32
- case 'AssignmentExpression':
33
- case 'BinaryExpression':
34
- case 'CallExpression':
35
- case 'ConditionalExpression':
36
- case 'FunctionExpression':
37
- case 'Identifier':
38
- case 'Literal':
39
- case 'LogicalExpression':
40
- case 'MemberExpression':
41
- case 'NewExpression':
42
- case 'ObjectExpression':
43
- case 'SequenceExpression':
44
- case 'ThisExpression':
45
- case 'UnaryExpression':
46
- case 'UpdateExpression':
47
- return true;
48
- }
49
- return false;
50
- }
51
-
52
- function isIterationStatement(node) {
53
- if (node == null) { return false; }
54
- switch (node.type) {
55
- case 'DoWhileStatement':
56
- case 'ForInStatement':
57
- case 'ForStatement':
58
- case 'WhileStatement':
59
- return true;
60
- }
61
- return false;
62
- }
63
-
64
- function isStatement(node) {
65
- if (node == null) { return false; }
66
- switch (node.type) {
67
- case 'BlockStatement':
68
- case 'BreakStatement':
69
- case 'ContinueStatement':
70
- case 'DebuggerStatement':
71
- case 'DoWhileStatement':
72
- case 'EmptyStatement':
73
- case 'ExpressionStatement':
74
- case 'ForInStatement':
75
- case 'ForStatement':
76
- case 'IfStatement':
77
- case 'LabeledStatement':
78
- case 'ReturnStatement':
79
- case 'SwitchStatement':
80
- case 'ThrowStatement':
81
- case 'TryStatement':
82
- case 'VariableDeclaration':
83
- case 'WhileStatement':
84
- case 'WithStatement':
85
- return true;
86
- }
87
- return false;
88
- }
89
-
90
- function isSourceElement(node) {
91
- return isStatement(node) || node != null && node.type === 'FunctionDeclaration';
92
- }
93
-
94
- function trailingStatement(node) {
95
- switch (node.type) {
96
- case 'IfStatement':
97
- if (node.alternate != null) {
98
- return node.alternate;
99
- }
100
- return node.consequent;
101
-
102
- case 'LabeledStatement':
103
- case 'ForStatement':
104
- case 'ForInStatement':
105
- case 'WhileStatement':
106
- case 'WithStatement':
107
- return node.body;
108
- }
109
- return null;
110
- }
111
-
112
- function isProblematicIfStatement(node) {
113
- var current;
114
-
115
- if (node.type !== 'IfStatement') {
116
- return false;
117
- }
118
- if (node.alternate == null) {
119
- return false;
120
- }
121
- current = node.consequent;
122
- do {
123
- if (current.type === 'IfStatement') {
124
- if (current.alternate == null) {
125
- return true;
126
- }
127
- }
128
- current = trailingStatement(current);
129
- } while (current);
130
-
131
- return false;
132
- }
133
-
134
- module.exports = {
135
- isExpression: isExpression,
136
- isStatement: isStatement,
137
- isIterationStatement: isIterationStatement,
138
- isSourceElement: isSourceElement,
139
- isProblematicIfStatement: isProblematicIfStatement,
140
-
141
- trailingStatement: trailingStatement
142
- };
143
- }());
144
- /* vim: set sw=4 ts=4 et tw=80 : */
@@ -1,135 +0,0 @@
1
- /*
2
- Copyright (C) 2013-2014 Yusuke Suzuki <utatane.tea@gmail.com>
3
- Copyright (C) 2014 Ivan Nikulin <ifaaan@gmail.com>
4
-
5
- Redistribution and use in source and binary forms, with or without
6
- modification, are permitted provided that the following conditions are met:
7
-
8
- * Redistributions of source code must retain the above copyright
9
- notice, this list of conditions and the following disclaimer.
10
- * Redistributions in binary form must reproduce the above copyright
11
- notice, this list of conditions and the following disclaimer in the
12
- documentation and/or other materials provided with the distribution.
13
-
14
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
18
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
- */
25
-
26
- (function () {
27
- 'use strict';
28
-
29
- var ES6Regex, ES5Regex, NON_ASCII_WHITESPACES, IDENTIFIER_START, IDENTIFIER_PART, ch;
30
-
31
- // See `tools/generate-identifier-regex.js`.
32
- ES5Regex = {
33
- // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierStart:
34
- NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,
35
- // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierPart:
36
- NonAsciiIdentifierPart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/
37
- };
38
-
39
- ES6Regex = {
40
- // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierStart:
41
- NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,
42
- // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierPart:
43
- NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/
44
- };
45
-
46
- function isDecimalDigit(ch) {
47
- return 0x30 <= ch && ch <= 0x39; // 0..9
48
- }
49
-
50
- function isHexDigit(ch) {
51
- return 0x30 <= ch && ch <= 0x39 || // 0..9
52
- 0x61 <= ch && ch <= 0x66 || // a..f
53
- 0x41 <= ch && ch <= 0x46; // A..F
54
- }
55
-
56
- function isOctalDigit(ch) {
57
- return ch >= 0x30 && ch <= 0x37; // 0..7
58
- }
59
-
60
- // 7.2 White Space
61
-
62
- NON_ASCII_WHITESPACES = [
63
- 0x1680,
64
- 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A,
65
- 0x202F, 0x205F,
66
- 0x3000,
67
- 0xFEFF
68
- ];
69
-
70
- function isWhiteSpace(ch) {
71
- return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 ||
72
- ch >= 0x1680 && NON_ASCII_WHITESPACES.indexOf(ch) >= 0;
73
- }
74
-
75
- // 7.3 Line Terminators
76
-
77
- function isLineTerminator(ch) {
78
- return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029;
79
- }
80
-
81
- // 7.6 Identifier Names and Identifiers
82
-
83
- function fromCodePoint(cp) {
84
- if (cp <= 0xFFFF) { return String.fromCharCode(cp); }
85
- var cu1 = String.fromCharCode(Math.floor((cp - 0x10000) / 0x400) + 0xD800);
86
- var cu2 = String.fromCharCode(((cp - 0x10000) % 0x400) + 0xDC00);
87
- return cu1 + cu2;
88
- }
89
-
90
- IDENTIFIER_START = new Array(0x80);
91
- for(ch = 0; ch < 0x80; ++ch) {
92
- IDENTIFIER_START[ch] =
93
- ch >= 0x61 && ch <= 0x7A || // a..z
94
- ch >= 0x41 && ch <= 0x5A || // A..Z
95
- ch === 0x24 || ch === 0x5F; // $ (dollar) and _ (underscore)
96
- }
97
-
98
- IDENTIFIER_PART = new Array(0x80);
99
- for(ch = 0; ch < 0x80; ++ch) {
100
- IDENTIFIER_PART[ch] =
101
- ch >= 0x61 && ch <= 0x7A || // a..z
102
- ch >= 0x41 && ch <= 0x5A || // A..Z
103
- ch >= 0x30 && ch <= 0x39 || // 0..9
104
- ch === 0x24 || ch === 0x5F; // $ (dollar) and _ (underscore)
105
- }
106
-
107
- function isIdentifierStartES5(ch) {
108
- return ch < 0x80 ? IDENTIFIER_START[ch] : ES5Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch));
109
- }
110
-
111
- function isIdentifierPartES5(ch) {
112
- return ch < 0x80 ? IDENTIFIER_PART[ch] : ES5Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch));
113
- }
114
-
115
- function isIdentifierStartES6(ch) {
116
- return ch < 0x80 ? IDENTIFIER_START[ch] : ES6Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch));
117
- }
118
-
119
- function isIdentifierPartES6(ch) {
120
- return ch < 0x80 ? IDENTIFIER_PART[ch] : ES6Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch));
121
- }
122
-
123
- module.exports = {
124
- isDecimalDigit: isDecimalDigit,
125
- isHexDigit: isHexDigit,
126
- isOctalDigit: isOctalDigit,
127
- isWhiteSpace: isWhiteSpace,
128
- isLineTerminator: isLineTerminator,
129
- isIdentifierStartES5: isIdentifierStartES5,
130
- isIdentifierPartES5: isIdentifierPartES5,
131
- isIdentifierStartES6: isIdentifierStartES6,
132
- isIdentifierPartES6: isIdentifierPartES6
133
- };
134
- }());
135
- /* vim: set sw=4 ts=4 et tw=80 : */