12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- /*!
- * Stylus - Call
- * Copyright (c) Automattic <developer.wordpress.com>
- * MIT Licensed
- */
- /**
- * Module dependencies.
- */
- var Node = require('./node');
- /**
- * Initialize a new `Call` with `name` and `args`.
- *
- * @param {String} name
- * @param {Expression} args
- * @api public
- */
- var Call = module.exports = function Call(name, args){
- Node.call(this);
- this.name = name;
- this.args = args;
- };
- /**
- * Inherit from `Node.prototype`.
- */
- Call.prototype.__proto__ = Node.prototype;
- /**
- * Return a clone of this node.
- *
- * @return {Node}
- * @api public
- */
- Call.prototype.clone = function(parent){
- var clone = new Call(this.name);
- clone.args = this.args.clone(parent, clone);
- if (this.block) clone.block = this.block.clone(parent, clone);
- clone.lineno = this.lineno;
- clone.column = this.column;
- clone.filename = this.filename;
- return clone;
- };
- /**
- * Return <name>(param1, param2, ...).
- *
- * @return {String}
- * @api public
- */
- Call.prototype.toString = function(){
- var args = this.args.nodes.map(function(node) {
- var str = node.toString();
- return str.slice(1, str.length - 1);
- }).join(', ');
- return this.name + '(' + args + ')';
- };
- /**
- * Return a JSON representation of this node.
- *
- * @return {Object}
- * @api public
- */
- Call.prototype.toJSON = function(){
- var json = {
- __type: 'Call',
- name: this.name,
- args: this.args,
- lineno: this.lineno,
- column: this.column,
- filename: this.filename
- };
- if (this.block) json.block = this.block;
- return json;
- };
|