@@ -137,129 +137,6 @@ function logloads(loads) {
137137 return - 1 ;
138138 } ;
139139
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-
263140 // 15.2.3 - Runtime Semantics: Loader State
264141
265142 // 15.2.3.11
@@ -390,7 +267,8 @@ function logloads(loads) {
390267 var depsList ;
391268 if ( instantiateResult === undefined ) {
392269 load . address = load . address || 'anon' + ++ anonCnt ;
393- depsList = parse ( load ) ;
270+ load . kind = 'declarative' ;
271+ depsList = loader . loaderObj . parse ( load ) ;
394272 }
395273 else if ( typeof instantiateResult == 'object' ) {
396274 depsList = instantiateResult . deps || [ ] ;
@@ -1033,7 +911,7 @@ function logloads(loads) {
1033911 return loader . modules [ name ] . module ;
1034912 }
1035913
1036- return importPromises [ name ] || createImportPromise ( name ,
914+ return importPromises [ name ] || createImportPromise ( name ,
1037915 loadModule ( loader , name , options || { } )
1038916 . then ( function ( load ) {
1039917 delete importPromises [ name ] ;
@@ -1117,6 +995,9 @@ function logloads(loads) {
1117995 translate : function ( load ) {
1118996 return load . source ;
1119997 } ,
998+ parse : function ( load ) {
999+ throw new TypeError ( 'Loader.parse is not implemented' ) ;
1000+ } ,
11201001 // 26.3.3.18.5
11211002 instantiate : function ( load ) {
11221003 }
@@ -1134,8 +1015,4 @@ function logloads(loads) {
11341015
11351016 } ) ( ) ;
11361017
1137- function __eval ( __source , __global , __moduleName ) {
1138- eval ( 'var __moduleName = "' + ( __moduleName || '' ) . replace ( '"' , '\"' ) + '"; (function() { ' + __source + ' \n }).call(__global);' ) ;
1139- }
1140-
11411018} ) ( typeof global !== 'undefined' ? global : this ) ;
0 commit comments