@@ -10,11 +10,11 @@ var glob = require('glob');
1010var ejs = require ( 'gulp-ejs' ) ;
1111var path = require ( 'path' ) ;
1212
13- // import js2dart and traceur build tasks
13+ // import js2dart build tasks
1414var js2dartTasks = require ( './tools/js2dart/gulp-tasks' ) ;
1515js2dartTasks . install ( gulp ) ;
1616
17- var traceurJsOptions = {
17+ var js2es5Options = {
1818 annotations : true , // parse annotations
1919 types : true , // parse types
2020 script : false , // parse as a module
@@ -24,15 +24,39 @@ var traceurJsOptions = {
2424 moduleName : true
2525} ;
2626
27+ var js2dartOptions = {
28+ annotations : true , // parse annotations
29+ types : true , // parse types
30+ script : false , // parse as a module
31+ outputLanguage : 'dart' ,
32+ moduleName : true
33+ } ;
34+
2735var traceur = require ( './tools/js2dart/gulp-traceur' ) ;
28- var js2dart = require ( './tools/js2dart/gulp-js2dart' ) ;
36+
37+ // ---------
38+ // rtts-assert and traceur runtime
39+
40+ gulp . task ( 'jsRuntime/build' , function ( ) {
41+ return jsRuntime ( false ) ;
42+ } ) ;
43+
44+ function jsRuntime ( isWatch ) {
45+ var srcFn = isWatch ? watch : gulp . src . bind ( gulp ) ;
46+ var rttsAssert = srcFn ( 'tools/rtts-assert/src/assert.js' )
47+ . pipe ( traceur ( js2es5Options ) )
48+ . pipe ( gulp . dest ( 'build/js' ) ) ;
49+ var traceurRuntime = srcFn ( 'tools/js2dart/node_modules/traceur/bin/traceur-runtime.js' )
50+ . pipe ( gulp . dest ( 'build/js' ) ) ;
51+ return mergeStreams ( rttsAssert , traceurRuntime ) ;
52+ }
2953
3054// -----------------------
3155// modules
3256var sourceTypeConfigs = {
3357 dart : {
3458 compiler : function ( ) {
35- return js2dart ( { replace : true } ) ;
59+ return traceur ( js2dartOptions , true ) ;
3660 } ,
3761 transpileSrc : [ 'modules/**/*.es6d' ] ,
3862 htmlSrc : [ 'modules/*/src/**/*.html' ] ,
@@ -43,11 +67,11 @@ var sourceTypeConfigs = {
4367 } ,
4468 js : {
4569 compiler : function ( ) {
46- return traceur ( traceurJsOptions ) ;
70+ return traceur ( js2es5Options , true ) ;
4771 } ,
48- transpileSrc : [ 'modules/**/*.es*' , 'tools/rtts-assert/src/assert.js' ] ,
72+ transpileSrc : [ 'modules/**/*.es*' ] ,
4973 htmlSrc : [ 'modules/*/src/**/*.html' ] ,
50- copySrc : [ 'tools/traceur/bin/traceur-runtime .js' ] ,
74+ copySrc : [ 'modules/**/* .js' ] ,
5175 outputDir : 'build/js' ,
5276 outputExt : 'js'
5377 }
@@ -102,37 +126,28 @@ gulp.task('serve', connect.server({
102126// --------------
103127// general targets
104128
105- gulp . task ( 'clean' , function ( done ) {
106- return runSequence ( [ 'traceur/clean' , 'js2dart/clean' , 'modules/clean' ] , done ) ;
107- } ) ;
129+ gulp . task ( 'clean' , [ 'js2dart/clean' , 'modules/clean' ] ) ;
108130
109131gulp . task ( 'build' , function ( ) {
110132 return runSequence (
111133 // sequential
112- 'traceur/build' , ' js2dart/build',
134+ 'js2dart/build' ,
113135 // parallel
114- [ 'modules/build.dart' , 'modules/build.js' ]
136+ [ 'jsRuntime/build' , ' modules/build.dart', 'modules/build.js' ]
115137 ) ;
116138} ) ;
117139
118140gulp . task ( 'watch' , function ( ) {
119- var traceurWatch = watch ( js2dartTasks . paths . traceurSrc , function ( _ , done ) {
120- runSequence (
121- // sequential
122- 'traceur/build' , 'js2dart/build' , 'js2dart/test' ,
123- // parallel
124- [ 'modules/build.dart' , 'modules/build.js' ] ,
125- done ) ;
126- } ) ;
141+ runSequence ( 'js2dart/test/watch' ) ;
127142 var js2dartWatch = watch ( js2dartTasks . paths . js2dartSrc , function ( _ , done ) {
128143 runSequence (
129144 // sequential
130145 'js2dart/build' , 'js2dart/test' ,
131146 // parallel
132- [ 'modules/build.dart' , 'modules/build.js' ] ,
147+ [ 'jsRuntime/build' , ' modules/build.dart', 'modules/build.js' ] ,
133148 done ) ;
134149 } ) ;
135150 var dartModuleWatch = createModuleTask ( sourceTypeConfigs . dart , true ) ( ) ;
136151 var jsModuleWatch = createModuleTask ( sourceTypeConfigs . js , true ) ( ) ;
137- return mergeStreams ( traceurWatch , js2dartWatch , dartModuleWatch , jsModuleWatch ) ;
152+ return mergeStreams ( js2dartWatch , dartModuleWatch , jsModuleWatch , jsRuntime ( true ) ) ;
138153} ) ;
0 commit comments