length.js 587 B

123456789101112131415161718192021222324252627
  1. var utils = require('../utils');
  2. /**
  3. * Return length of the given `expr`.
  4. *
  5. * @param {Expression} expr
  6. * @return {Unit}
  7. * @api public
  8. */
  9. (module.exports = function length(expr){
  10. if (expr) {
  11. if (expr.nodes) {
  12. var nodes = utils.unwrap(expr).nodes;
  13. if (1 == nodes.length && 'object' == nodes[0].nodeName) {
  14. return nodes[0].length;
  15. } else if (1 == nodes.length && 'string' == nodes[0].nodeName) {
  16. return nodes[0].val.length;
  17. } else {
  18. return nodes.length;
  19. }
  20. } else {
  21. return 1;
  22. }
  23. }
  24. return 0;
  25. }).raw = true;