1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /*!
- * Stylus - stack - Frame
- * Copyright (c) Automattic <developer.wordpress.com>
- * MIT Licensed
- */
- /**
- * Module dependencies.
- */
- var Scope = require('./scope');
- /**
- * Initialize a new `Frame` with the given `block`.
- *
- * @param {Block} block
- * @api private
- */
- var Frame = module.exports = function Frame(block) {
- this._scope = false === block.scope
- ? null
- : new Scope;
- this.block = block;
- };
- /**
- * Return this frame's scope or the parent scope
- * for scope-less blocks.
- *
- * @return {Scope}
- * @api public
- */
- Frame.prototype.__defineGetter__('scope', function(){
- return this._scope || this.parent.scope;
- });
- /**
- * Lookup the given local variable `name`.
- *
- * @param {String} name
- * @return {Node}
- * @api private
- */
- Frame.prototype.lookup = function(name){
- return this.scope.lookup(name)
- };
- /**
- * Custom inspect.
- *
- * @return {String}
- * @api public
- */
- Frame.prototype.inspect = function(){
- return '[Frame '
- + (false === this.block.scope
- ? 'scope-less'
- : this.scope.inspect())
- + ']';
- };
|