@@ -137,129 +137,6 @@ function logloads(loads) {
137
137
return - 1 ;
138
138
} ;
139
139
140
- // --- <Specific Traceur Parsing Code> ---
141
- // parse function is used to parse a load record
142
- // tree traversal, NB should use visitor pattern here
143
- function traverse ( object , iterator , parent , parentProperty ) {
144
- var key , child ;
145
- if ( iterator ( object , parent , parentProperty ) === false )
146
- return ;
147
- for ( key in object ) {
148
- if ( ! object . hasOwnProperty ( key ) )
149
- continue ;
150
- if ( key == 'location' || key == 'type' )
151
- continue ;
152
- child = object [ key ] ;
153
- if ( typeof child == 'object' && child !== null )
154
- traverse ( child , iterator , object , key ) ;
155
- }
156
- }
157
- // given a syntax tree, return the import list
158
- function getImports ( moduleTree ) {
159
- var imports = [ ] ;
160
-
161
- function addImport ( name ) {
162
- if ( indexOf . call ( imports , name ) == - 1 )
163
- imports . push ( name ) ;
164
- }
165
-
166
- traverse ( moduleTree , function ( node ) {
167
- // import {} from 'foo';
168
- // export * from 'foo';
169
- // export { ... } from 'foo';
170
- // module x from 'foo';
171
- if ( node . type == 'EXPORT_DECLARATION' ) {
172
- if ( node . declaration . moduleSpecifier )
173
- addImport ( node . declaration . moduleSpecifier . token . processedValue ) ;
174
- }
175
- else if ( node . type == 'IMPORT_DECLARATION' )
176
- addImport ( node . moduleSpecifier . token . processedValue ) ;
177
- else if ( node . type == 'MODULE_DECLARATION' )
178
- addImport ( node . expression . token . processedValue ) ;
179
- } ) ;
180
- return imports ;
181
- }
182
- // Returns an array of ModuleSpecifiers
183
- function parse ( load ) {
184
- if ( ! traceur ) {
185
- if ( typeof window == 'undefined' )
186
- traceur = require ( 'traceur' ) ;
187
- else if ( __global . traceur )
188
- traceur = __global . traceur ;
189
- else
190
- throw new TypeError ( 'Include Traceur for module syntax support' ) ;
191
- }
192
-
193
- console . assert ( load . source , 'Non-empty source' ) ;
194
-
195
- var depsList , curRegister , curSystem , oldSourceMaps , oldModules ;
196
- ( function ( ) {
197
- try {
198
- var parser = new traceur . syntax . Parser ( new traceur . syntax . SourceFile ( load . address , load . source ) ) ;
199
- var body = parser . parseModule ( ) ;
200
-
201
- load . kind = 'declarative' ;
202
- depsList = getImports ( body ) ;
203
-
204
- oldSourceMaps = traceur . options . sourceMaps ;
205
- oldModules = traceur . options . modules ;
206
-
207
- traceur . options . sourceMaps = true ;
208
- traceur . options . modules = 'instantiate' ;
209
-
210
- var reporter = new traceur . util . ErrorReporter ( ) ;
211
-
212
- reporter . reportMessageInternal = function ( location , kind , format , args ) {
213
- throw new SyntaxError ( kind , location . start && location . start . line_ , location . start && location . start . column_ ) ;
214
- }
215
-
216
- // traceur expects its version of System
217
- curSystem = __global . System ;
218
- __global . System = __global . traceurSystem ;
219
-
220
- var tree = ( new traceur . codegeneration . module . AttachModuleNameTransformer ( load . name ) ) . transformAny ( body ) ;
221
- tree = ( new traceur . codegeneration . FromOptionsTransformer ( reporter ) ) . transform ( tree ) ;
222
-
223
- var sourceMapGenerator = new traceur . outputgeneration . SourceMapGenerator ( { file : load . address } ) ;
224
- var options = { sourceMapGenerator : sourceMapGenerator } ;
225
-
226
- var source = traceur . outputgeneration . TreeWriter . write ( tree , options ) ;
227
-
228
- if ( __global . btoa )
229
- source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa ( unescape ( encodeURIComponent ( options . sourceMap ) ) ) + '\n' ;
230
-
231
- // now run System.register
232
- curRegister = System . register ;
233
-
234
- System . register = function ( name , deps , declare ) {
235
- // store the registered declaration as load.declare
236
- load . declare = typeof name == 'string' ? declare : deps ;
237
- }
238
-
239
- __eval ( source , __global , load . name ) ;
240
- }
241
- catch ( e ) {
242
- if ( e . name == 'SyntaxError' || e . name == 'TypeError' )
243
- e . message = 'Evaluating ' + ( load . name || load . address ) + '\n\t' + e . message ;
244
- if ( curRegister )
245
- System . register = curRegister ;
246
- if ( curSystem )
247
- __global . System = curSystem ;
248
- if ( oldSourceMaps )
249
- traceur . options . sourceMaps = oldSourceMaps ;
250
- if ( oldModules )
251
- traceur . options . modules = oldModules ;
252
- throw e ;
253
- }
254
- } ( ) ) ;
255
- System . register = curRegister ;
256
- __global . System = curSystem ;
257
- traceur . options . sourceMaps = oldSourceMaps ;
258
- traceur . options . modules = oldModules ;
259
- return depsList ;
260
- }
261
- // --- </Specific Traceur Parsing Code> ---
262
-
263
140
// 15.2.3 - Runtime Semantics: Loader State
264
141
265
142
// 15.2.3.11
@@ -390,7 +267,8 @@ function logloads(loads) {
390
267
var depsList ;
391
268
if ( instantiateResult === undefined ) {
392
269
load . address = load . address || 'anon' + ++ anonCnt ;
393
- depsList = parse ( load ) ;
270
+ load . kind = 'declarative' ;
271
+ depsList = loader . loaderObj . parse ( load ) ;
394
272
}
395
273
else if ( typeof instantiateResult == 'object' ) {
396
274
depsList = instantiateResult . deps || [ ] ;
@@ -1033,7 +911,7 @@ function logloads(loads) {
1033
911
return loader . modules [ name ] . module ;
1034
912
}
1035
913
1036
- return importPromises [ name ] || createImportPromise ( name ,
914
+ return importPromises [ name ] || createImportPromise ( name ,
1037
915
loadModule ( loader , name , options || { } )
1038
916
. then ( function ( load ) {
1039
917
delete importPromises [ name ] ;
@@ -1117,6 +995,9 @@ function logloads(loads) {
1117
995
translate : function ( load ) {
1118
996
return load . source ;
1119
997
} ,
998
+ parse : function ( load ) {
999
+ throw new TypeError ( 'Loader.parse is not implemented' ) ;
1000
+ } ,
1120
1001
// 26.3.3.18.5
1121
1002
instantiate : function ( load ) {
1122
1003
}
@@ -1134,8 +1015,4 @@ function logloads(loads) {
1134
1015
1135
1016
} ) ( ) ;
1136
1017
1137
- function __eval ( __source , __global , __moduleName ) {
1138
- eval ( 'var __moduleName = "' + ( __moduleName || '' ) . replace ( '"' , '\"' ) + '"; (function() { ' + __source + ' \n }).call(__global);' ) ;
1139
- }
1140
-
1141
1018
} ) ( typeof global !== 'undefined' ? global : this ) ;
0 commit comments