aboutsummaryrefslogtreecommitdiff
path: root/node_modules/stylus/lib/stack/frame.js
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:38:48 +0800
committerruki <waruqi@gmail.com>2018-11-07 21:53:09 +0800
commit26105034da4fcce7ac883c899d781f016559310d (patch)
treec459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/stylus/lib/stack/frame.js
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
Diffstat (limited to 'node_modules/stylus/lib/stack/frame.js')
-rw-r--r--node_modules/stylus/lib/stack/frame.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/node_modules/stylus/lib/stack/frame.js b/node_modules/stylus/lib/stack/frame.js
new file mode 100644
index 00000000..ce3117d5
--- /dev/null
+++ b/node_modules/stylus/lib/stack/frame.js
@@ -0,0 +1,65 @@
+
+/*!
+ * 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())
+ + ']';
+};