Sha256: 34a3cc8252a184ccbd858590b56fd614246462a12caf55e780ae17a649157681

Contents?: true

Size: 809 Bytes

Versions: 39

Compression:

Stored size: 809 Bytes

Contents

var utils = require('../utils')
  , nodes = require('../nodes');

/**
 * Returns a list of units from `start` to `stop`
 * by `step`. If `step` argument is omitted,
 * it defaults to 1.
 *
 * @param {Unit} start
 * @param {Unit} stop
 * @param {Unit} [step]
 * @return {Expression}
 * @api public
 */

module.exports = function range(start, stop, step){
  utils.assertType(start, 'unit', 'start');
  utils.assertType(stop, 'unit', 'stop');
  if (step) {
    utils.assertType(step, 'unit', 'step');
    if (0 == step.val) {
      throw new Error('ArgumentError: "step" argument must not be zero');
    }
  } else {
    step = new nodes.Unit(1);
  }
  var list = new nodes.Expression;
  for (var i = start.val; i <= stop.val; i += step.val) {
    list.push(new nodes.Unit(i, start.type));
  }
  return list;
};

Version data entries

39 entries across 20 versions & 2 rubygems

Version Path
ela-4.1.6 node_modules/stylus/lib/functions/range.js
ela-4.1.6 node_modules/nib/node_modules/stylus/lib/functions/range.js
ela-4.1.5 node_modules/stylus/lib/functions/range.js
ela-4.1.5 node_modules/nib/node_modules/stylus/lib/functions/range.js
ela-4.1.4 node_modules/nib/node_modules/stylus/lib/functions/range.js
ela-4.1.4 node_modules/stylus/lib/functions/range.js
ela-4.1.3 node_modules/stylus/lib/functions/range.js
ela-4.1.3 node_modules/nib/node_modules/stylus/lib/functions/range.js
ela-4.1.2 node_modules/stylus/lib/functions/range.js
ela-4.1.2 node_modules/nib/node_modules/stylus/lib/functions/range.js
ela-4.1.1 node_modules/stylus/lib/functions/range.js
ela-4.1.1 node_modules/nib/node_modules/stylus/lib/functions/range.js
ela-4.1.0 node_modules/stylus/lib/functions/range.js
ela-4.1.0 node_modules/nib/node_modules/stylus/lib/functions/range.js
ela-4.0.0 node_modules/stylus/lib/functions/range.js
ela-4.0.0 node_modules/nib/node_modules/stylus/lib/functions/range.js
ela-3.4.3 node_modules/stylus/lib/functions/range.js
ela-3.4.3 node_modules/nib/node_modules/stylus/lib/functions/range.js
ela-3.4.2 node_modules/nib/node_modules/stylus/lib/functions/range.js
ela-3.4.2 node_modules/stylus/lib/functions/range.js