code: function(tasksConfig) {
    /* JS linting  */
    gulp.task('lint', extendDeps([], tasksConfig.lint), function() {
      return gulp.src(extendSrcs([
        paths.src.js,
        paths.src.es6
      ], tasksConfig.lint))
      .pipe($.jshint({
        lookup: true
      }))
      .pipe($.jshint.reporter('jshint-stylish'));
    });
    gulp.task('lint:blocker', extendDeps([], tasksConfig.lint), function() {
      return gulp.src(extendSrcs([
        paths.src.js,
        paths.src.es6
      ], tasksConfig.lint))
      .pipe($.jshint({
        lookup: true
      }))
      .pipe($.jshint.reporter('jshint-stylish'))
      .pipe($.jshint.reporter('fail'));
    });
  
    /* JS validation  */
    gulp.task('jsvalidate:blocker', ['babelify'], function () {
      return gulp.src(extendSrcs([
        paths.src.tmp + '**/*.js',
        paths.src.tmp + '**/*' + paths.src.esnextExt,
        '!' + paths.src.tmp + '**/*.test.js',
        '!' + paths.src.tmp + '**/*.test' + paths.src.esnextExt
      ], tasksConfig.lint))
      .pipe($.jsvalidate());
    });
    gulp.task('jsvalidate:blocker:clean', ['jsvalidate:blocker'], cleanTmp);
  
    /* JS unit tests runner  */
    gulp.task('karma', function() {
      return gulp.src([
        'tricky/freaky/trick/**/*.js'
      ])
      .pipe($.karma({
        configFile: 'karma.conf.js',
        action: 'run'
      }))
      .on('error', function(/*err*/) {
        // throw err;
      });
    });
    gulp.task('karma:dev', function() {
      return gulp.src([
        'tricky/freaky/trick/**/*.js'
      ])
      .pipe($.karma({
        configFile: 'karma.conf.js',
        action: 'watch'
      }))
      .on('error', function(/*err*/) {
        // throw err;
      });
    });
  }
docs: /* Tests tasks -------------------------------------------------------------