@@ -161,13 +161,18 @@ define(function (require, exports, module) {
161
161
} ) ;
162
162
}
163
163
164
+ // TODO 1: The definitions below should be defined in a separate JSON file.
165
+ // TODO 2: Add properties and associations for the builtin globals.
166
+
164
167
var KEYWORD_NAMES = [
165
168
"break" , "case" , "catch" , "continue" , "debugger" , "default" , "delete" ,
166
169
"do" , "else" , "finally" , "for" , "function" , "if" , "in" , "instanceof" ,
167
170
"new" , "return" , "switch" , "this" , "throw" , "try" , "typeof" , "var" ,
168
171
"void" , "while" , "with"
169
172
] ,
170
- KEYWORD_TOKENS = KEYWORD_NAMES . map ( function ( t ) { return makeToken ( t , [ ] ) ; } ) ,
173
+ KEYWORD_TOKENS = KEYWORD_NAMES . map ( function ( t ) {
174
+ return makeToken ( t , [ ] ) ;
175
+ } ) ,
171
176
KEYWORDS = annotateKeywords ( KEYWORD_TOKENS ) ;
172
177
173
178
var LITERAL_NAMES = [
@@ -176,7 +181,7 @@ define(function (require, exports, module) {
176
181
LITERAL_TOKENS = LITERAL_NAMES . map ( function ( t ) { return makeToken ( t , [ ] ) ; } ) ,
177
182
LITERALS = annotateLiterals ( LITERAL_TOKENS ) ;
178
183
179
- var JSL_GLOBALS = [
184
+ var JSL_GLOBAL_NAMES = [
180
185
"clearInterval" , "clearTimeout" , "document" , "event" , "frames" ,
181
186
"history" , "Image" , "location" , "name" , "navigator" , "Option" ,
182
187
"parent" , "screen" , "setInterval" , "setTimeout" , "window" ,
@@ -187,10 +192,13 @@ define(function (require, exports, module) {
187
192
"readFile" , "readUrl" , "runCommand" , "seal" , "serialize" , "spawn" ,
188
193
"sync" , "toint32" , "version" , "ActiveXObject" , "CScript" , "Enumerator" ,
189
194
"System" , "VBArray" , "WScript"
190
- ] . reduce ( function ( prev , curr ) {
191
- prev [ curr ] = makeToken ( curr ) ;
192
- return prev ;
193
- } , { } ) ;
195
+ ] ,
196
+ JSL_GLOBALS = annotateGlobals ( JSL_GLOBAL_NAMES . map ( function ( t ) {
197
+ return makeToken ( t , [ ] ) ;
198
+ } ) ) . reduce ( function ( prev , curr ) {
199
+ prev [ curr . value ] = curr ;
200
+ return prev ;
201
+ } , { } ) ;
194
202
195
203
var JSL_GLOBALS_BROWSER = [
196
204
JSL_GLOBALS . clearInterval ,
@@ -274,6 +282,22 @@ define(function (require, exports, module) {
274
282
windows : JSL_GLOBALS_WINDOWS
275
283
} ;
276
284
285
+ var BUILTIN_GLOBAL_NAMES = [
286
+ "Array" , "Boolean" , "Date" , "Function" , "Iterator" , "Number" , "Object" ,
287
+ "RegExp" , "String" , "ArrayBuffer" , "DataView" , "Float32Array" ,
288
+ "Float64Array" , "Int16Array" , "Int32Array" , "Int8Array" , "Uint16Array" ,
289
+ "Uint32Array" , "Uint8Array" , "Uint8ClampedArray" , "Error" , "EvalError" ,
290
+ "InternalError" , "RangeError" , "ReferenceError" , "StopIteration" ,
291
+ "SyntaxError" , "TypeError" , "URIError" , "decodeURI" ,
292
+ "decodeURIComponent" , "encodeURI" , "encodeURIComponent" , "eval" ,
293
+ "isFinite" , "isNaN" , "parseFloat" , "parseInt" , "uneval" , "Infinity" ,
294
+ "JSON" , "Math" , "NaN"
295
+ ] ,
296
+ BUILTIN_GLOBAL_TOKENS = BUILTIN_GLOBAL_NAMES . map ( function ( t ) {
297
+ return makeToken ( t , [ ] ) ;
298
+ } ) ,
299
+ BUILTIN_GLOBALS = annotateGlobals ( BUILTIN_GLOBAL_TOKENS ) ;
300
+
277
301
exports . makeToken = makeToken ;
278
302
exports . hintable = hintable ;
279
303
exports . maybeIdentifier = maybeIdentifier ;
@@ -285,6 +309,7 @@ define(function (require, exports, module) {
285
309
exports . annotateWithScope = annotateWithScope ;
286
310
exports . annotateWithAssociation = annotateWithAssociation ;
287
311
exports . JSL_GLOBAL_DEFS = JSL_GLOBAL_DEFS ;
312
+ exports . BUILTIN_GLOBALS = BUILTIN_GLOBALS ;
288
313
exports . KEYWORDS = KEYWORDS ;
289
314
exports . LITERALS = LITERALS ;
290
315
exports . MODE_NAME = MODE_NAME ;
0 commit comments