[Pkg-javascript-commits] [node-with] 01/02: Imported Upstream version 3.0.0
Leo Iannacone
l3on-guest at moszumanska.debian.org
Tue May 27 09:13:37 UTC 2014
This is an automated email from the git hooks/post-receive script.
l3on-guest pushed a commit to branch master
in repository node-with.
commit ccb7fd8bb1fc46c179715df6edb58ab1e851b1e5
Author: Leo Iannacone <l3on at ubuntu.com>
Date: Wed May 7 17:11:09 2014 +0200
Imported Upstream version 3.0.0
---
.npmignore | 2 +
.travis.yml | 4 +
LICENSE | 19 ++
README.md | 81 ++++++++
index.js | 111 +++++++++++
package.json | 21 +++
test/index.js | 129 +++++++++++++
vars.js | 587 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8 files changed, 954 insertions(+)
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..cefaa67
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,2 @@
+test/
+.travis.yml
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..cc4dba2
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,4 @@
+language: node_js
+node_js:
+ - "0.8"
+ - "0.10"
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..dfb0b19
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2013 Forbes Lindesay
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..aadaf62
--- /dev/null
+++ b/README.md
@@ -0,0 +1,81 @@
+# with
+
+Compile time `with` for strict mode JavaScript
+
+[![build status](https://secure.travis-ci.org/ForbesLindesay/with.png)](http://travis-ci.org/ForbesLindesay/with)
+[![Dependency Status](https://gemnasium.com/ForbesLindesay/with.png)](https://gemnasium.com/ForbesLindesay/with)
+[![NPM version](https://badge.fury.io/js/with.png)](http://badge.fury.io/js/with)
+
+## Installation
+
+ $ npm install with
+
+## Usage
+
+```js
+var addWith = require('with')
+
+addWith('obj', 'console.log(a)')
+// => ';(function (console, a) {
+// console.log(a)
+// }("console" in obj ? obj.console :
+// typeof console!=="undefined" ? console : undefined,
+// "a" in obj ? obj.a :
+// typeof a !== "undefined" ? a : undefined));'
+
+addWith('obj', 'console.log(a)', ['console'])
+// => ';(function (console, a) {
+// console.log(a)
+// }("a" in obj ? obj.a :
+// typeof a !== "undefined" ? a : undefined));'
+```
+
+## API
+
+### addWith(obj, src[, exclude])
+
+The idea is that this is roughly equivallent to:
+
+```js
+with (obj) {
+ src
+}
+```
+
+There are a few differences though. For starters, assignments to variables will always remain contained within the with block.
+
+e.g.
+
+```js
+var foo = 'foo'
+with ({}) {
+ foo = 'bar'
+}
+assert(foo === 'bar')// => This fails for compile time with but passes for native with
+
+var obj = {foo: 'foo'}
+with ({}) {
+ foo = 'bar'
+}
+assert(obj.foo === 'bar')// => This fails for compile time with but passes for native with
+```
+
+It also makes everything be declared, so you can always do:
+
+```js
+if (foo === undefined)
+```
+
+instead of
+
+```js
+if (typeof foo === 'undefined')
+```
+
+This is not the case if foo is in `exclude`. If a variable is excluded, we ignore it entirely. This is useful if you know a variable will be global as it can lead to efficiency improvements.
+
+It is also safe to use in strict mode (unlike `with`) and it minifies properly (`with` disables virtually all minification).
+
+## License
+
+ MIT
\ No newline at end of file
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..a847c8f
--- /dev/null
+++ b/index.js
@@ -0,0 +1,111 @@
+'use strict';
+
+var uglify = require('uglify-js')
+
+module.exports = addWith
+
+/**
+ * Mimic `with` as far as possible but at compile time
+ *
+ * @param {String} obj The object part of a with expression
+ * @param {String} src The body of the with expression
+ * @param {Array.<String>} exclude A list of variable names to explicitly exclude
+ */
+function addWith(obj, src, exclude) {
+ obj = obj + ''
+ src = src + ''
+ exclude = exclude || []
+ exclude = exclude.concat(detect(obj))
+ var vars = detect(src)
+ .filter(function (v) {
+ return exclude.indexOf(v) === -1
+ })
+
+ if (vars.length === 0) return src
+
+ var declareLocal = ''
+ var local = 'locals_for_with'
+ var result = 'result_of_with'
+ if (/^[a-zA-Z0-9$_]+$/.test(obj)) {
+ local = obj
+ } else {
+ while (vars.indexOf(local) != -1 || exclude.indexOf(local) != -1) {
+ local += '_'
+ }
+ declareLocal = 'var ' + local + ' = (' + obj + ')'
+ }
+ while (vars.indexOf(result) != -1 || exclude.indexOf(result) != -1) {
+ result += '_'
+ }
+
+ var inputVars = vars.map(function (v) {
+ return JSON.stringify(v) + ' in ' + local + '?' +
+ local + '.' + v + ':' +
+ 'typeof ' + v + '!=="undefined"?' + v + ':undefined'
+ })
+
+ src = '(function (' + vars.join(', ') + ') {' +
+ src +
+ '}(' + inputVars.join(',') + '))'
+
+ return ';' + declareLocal + ';' + unwrapReturns(src, result) + ';'
+}
+
+/**
+ * Detect, and return a list of, any global variables in a function
+ *
+ * @param {String} src Some JavaScript code
+ */
+function detect(src) {
+ var ast = uglify.parse('(function () {' + src + '}())') // allow return keyword
+ ast.figure_out_scope()
+ var globals = ast.globals
+ .map(function (node, name) {
+ return name
+ })
+ return globals
+}
+
+/**
+ * Take a self calling function, and unwrap it such that return inside the function
+ * results in return outside the function
+ *
+ * @param {String} src Some JavaScript code representing a self-calling function
+ * @param {String} result A temporary variable to store the result in
+ */
+function unwrapReturns(src, result) {
+ var originalSource = src
+ var hasReturn = false
+ var ast = uglify.parse(src)
+ src = src.split('')
+
+ if (ast.body.length !== 1 || ast.body[0].TYPE !== 'SimpleStatement' ||
+ ast.body[0].body.TYPE !== 'Call' || ast.body[0].body.expression.TYPE !== 'Function')
+ throw new Error('AST does not seem to represent a self-calling function')
+ var fn = ast.body[0].body.expression
+
+ var walker = new uglify.TreeWalker(visitor)
+ function visitor(node, descend) {
+ if (node !== fn && (node.TYPE === 'Defun' || node.TYPE === 'Function')) {
+ return true //don't descend into functions
+ }
+ if (node.TYPE === 'Return') {
+ descend()
+ hasReturn = true
+ replace(node, 'return {value: ' + source(node.value) + '};')
+ return true //don't descend again
+ }
+ }
+ function source(node) {
+ return src.slice(node.start.pos, node.end.endpos).join('')
+ }
+ function replace(node, str) {
+ for (var i = node.start.pos; i < node.end.endpos; i++) {
+ src[i] = ''
+ }
+ src[node.start.pos] = str
+ }
+ ast.walk(walker)
+ if (!hasReturn) return originalSource
+ else return 'var ' + result + '=' + src.join('') + ';if (' + result + ') return ' + result + '.value'
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..e1578f6
--- /dev/null
+++ b/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "with",
+ "version": "3.0.0",
+ "description": "Compile time `with` for strict mode JavaScript",
+ "main": "index.js",
+ "scripts": {
+ "test": "mocha -R spec"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/ForbesLindesay/with.git"
+ },
+ "author": "ForbesLindesay",
+ "license": "MIT",
+ "dependencies": {
+ "uglify-js": "~2.4.12"
+ },
+ "devDependencies": {
+ "mocha": "~1.12.0"
+ }
+}
\ No newline at end of file
diff --git a/test/index.js b/test/index.js
new file mode 100644
index 0000000..a0bbb45
--- /dev/null
+++ b/test/index.js
@@ -0,0 +1,129 @@
+var assert = require('assert')
+
+var addWith = require('../')
+
+var sentinel = {}
+var sentinel2 = {}
+describe('addWith("obj", "console.log(a)")', function () {
+ it('adds the necessary variable declarations', function (done) {
+ var src = addWith('obj', 'console.log(a)')
+ // var a = obj.a;console.log(a)
+ Function('console,obj', src)(
+ {
+ log: function (a) {
+ assert(a === sentinel)
+ done()
+ }
+ },
+ {a: sentinel})
+ })
+})
+describe('addWith("obj || {}", "console.log(a)")', function () {
+ it('adds the necessary variable declarations', function (done) {
+ var src = addWith('obj || {}', 'console.log(a)')
+ // var locals = (obj || {}),a = locals.a;console.log(a)
+ var expected = 2
+ Function('console,obj', src)(
+ {
+ log: function (a) {
+ assert(a === sentinel)
+ if (0 === --expected) done()
+ }
+ },
+ {a: sentinel})
+ Function('console,obj', src)(
+ {
+ log: function (a) {
+ assert(a === undefined)
+ if (0 === --expected) done()
+ }
+ })
+ })
+})
+describe('addWith("obj", "console.log(helper(a))")', function () {
+ it('adds the necessary variable declarations', function (done) {
+ var src = addWith('obj', 'console.log(helper(a))')
+ // var a = obj.a;console.log(helper(a))
+ Function('console,obj,helper', src)(
+ {
+ log: function (a) {
+ assert(a === sentinel)
+ done()
+ }
+ },
+ {a: sentinel2},
+ function (a) {
+ assert(a === sentinel2)
+ return sentinel
+ })
+ })
+})
+describe('addWith("obj || {}", "console.log(locals(a))")', function () {
+ it('adds the necessary variable declarations', function (done) {
+ var src = addWith('obj || {}', 'console.log(locals(a))')
+ // var locals__ = (obj || {}),locals = locals__.locals,a = locals__.a;console.log(locals(a))
+ Function('console,obj', src)(
+ {
+ log: function (a) {
+ assert(a === sentinel)
+ done()
+ }
+ },
+ {
+ a: sentinel2,
+ locals: function (a) {
+ assert(a === sentinel2)
+ return sentinel
+ }
+ })
+ })
+})
+
+describe('addWith("obj || {}", "console.log(\'foo\')")', function () {
+ it('passes through', function (done) {
+ var src = addWith('obj || {}', 'console.log("foo")')
+ // console.log(\'foo\')
+ Function('console,obj', src)(
+ {
+ log: function (a) {
+ assert(a === 'foo')
+ done()
+ }
+ })
+ })
+})
+
+describe('addWith("obj || {}", "obj.foo")', function () {
+ it('passes through', function (done) {
+ var src = addWith('obj || {}', 'obj.bar = obj.foo')
+ // obj.bar = obj.foo
+ var obj = {
+ foo: 'ding'
+ }
+ Function('obj', src)(obj)
+ assert(obj.bar === 'ding')
+ done()
+ })
+})
+
+describe('addWith("obj || {}", "return foo")', function () {
+ it('supports returning values', function (done) {
+ var src = addWith('obj || {}', 'return foo')
+ // obj.bar = obj.foo
+ var obj = {
+ foo: 'ding'
+ }
+ assert(Function('obj', src)(obj) === 'ding')
+ done()
+ })
+ it('supports returning undefined', function (done) {
+ var src = addWith('obj || {}', 'return foo')
+ assert(Function('obj', src + ';return "ding"')({}) === undefined)
+ done()
+ })
+ it('supports not actually returning', function (done) {
+ var src = addWith('obj || {}', 'if (false) return foo')
+ assert(Function('obj', src + ';return "ding"')({}) === 'ding')
+ done()
+ })
+})
\ No newline at end of file
diff --git a/vars.js b/vars.js
new file mode 100644
index 0000000..dbf6aa4
--- /dev/null
+++ b/vars.js
@@ -0,0 +1,587 @@
+// jshint -W001
+
+"use strict";
+
+// Identifiers provided by the ECMAScript standard.
+
+exports.reservedVars = {
+ arguments : false,
+ NaN : false
+};
+
+exports.ecmaIdentifiers = {
+ Array : false,
+ Boolean : false,
+ Date : false,
+ decodeURI : false,
+ decodeURIComponent : false,
+ encodeURI : false,
+ encodeURIComponent : false,
+ Error : false,
+ "eval" : false,
+ EvalError : false,
+ Function : false,
+ hasOwnProperty : false,
+ isFinite : false,
+ isNaN : false,
+ JSON : false,
+ Math : false,
+ Map : false,
+ Number : false,
+ Object : false,
+ parseInt : false,
+ parseFloat : false,
+ RangeError : false,
+ ReferenceError : false,
+ RegExp : false,
+ Set : false,
+ String : false,
+ SyntaxError : false,
+ TypeError : false,
+ URIError : false,
+ WeakMap : false
+};
+
+// Global variables commonly provided by a web browser environment.
+
+exports.browser = {
+ Audio : false,
+ Blob : false,
+ addEventListener : false,
+ applicationCache : false,
+ atob : false,
+ blur : false,
+ btoa : false,
+ clearInterval : false,
+ clearTimeout : false,
+ close : false,
+ closed : false,
+ CustomEvent : false,
+ DOMParser : false,
+ defaultStatus : false,
+ document : false,
+ Element : false,
+ ElementTimeControl : false,
+ event : false,
+ FileReader : false,
+ FormData : false,
+ focus : false,
+ frames : false,
+ getComputedStyle : false,
+ HTMLElement : false,
+ HTMLAnchorElement : false,
+ HTMLBaseElement : false,
+ HTMLBlockquoteElement: false,
+ HTMLBodyElement : false,
+ HTMLBRElement : false,
+ HTMLButtonElement : false,
+ HTMLCanvasElement : false,
+ HTMLDirectoryElement : false,
+ HTMLDivElement : false,
+ HTMLDListElement : false,
+ HTMLFieldSetElement : false,
+ HTMLFontElement : false,
+ HTMLFormElement : false,
+ HTMLFrameElement : false,
+ HTMLFrameSetElement : false,
+ HTMLHeadElement : false,
+ HTMLHeadingElement : false,
+ HTMLHRElement : false,
+ HTMLHtmlElement : false,
+ HTMLIFrameElement : false,
+ HTMLImageElement : false,
+ HTMLInputElement : false,
+ HTMLIsIndexElement : false,
+ HTMLLabelElement : false,
+ HTMLLayerElement : false,
+ HTMLLegendElement : false,
+ HTMLLIElement : false,
+ HTMLLinkElement : false,
+ HTMLMapElement : false,
+ HTMLMenuElement : false,
+ HTMLMetaElement : false,
+ HTMLModElement : false,
+ HTMLObjectElement : false,
+ HTMLOListElement : false,
+ HTMLOptGroupElement : false,
+ HTMLOptionElement : false,
+ HTMLParagraphElement : false,
+ HTMLParamElement : false,
+ HTMLPreElement : false,
+ HTMLQuoteElement : false,
+ HTMLScriptElement : false,
+ HTMLSelectElement : false,
+ HTMLStyleElement : false,
+ HTMLTableCaptionElement: false,
+ HTMLTableCellElement : false,
+ HTMLTableColElement : false,
+ HTMLTableElement : false,
+ HTMLTableRowElement : false,
+ HTMLTableSectionElement: false,
+ HTMLTextAreaElement : false,
+ HTMLTitleElement : false,
+ HTMLUListElement : false,
+ HTMLVideoElement : false,
+ history : false,
+ Image : false,
+ length : false,
+ localStorage : false,
+ location : false,
+ MessageChannel : false,
+ MessageEvent : false,
+ MessagePort : false,
+ MouseEvent : false,
+ moveBy : false,
+ moveTo : false,
+ MutationObserver : false,
+ name : false,
+ Node : false,
+ NodeFilter : false,
+ navigator : false,
+ onbeforeunload : true,
+ onblur : true,
+ onerror : true,
+ onfocus : true,
+ onload : true,
+ onresize : true,
+ onunload : true,
+ open : false,
+ openDatabase : false,
+ opener : false,
+ Option : false,
+ parent : false,
+ print : false,
+ removeEventListener : false,
+ resizeBy : false,
+ resizeTo : false,
+ screen : false,
+ scroll : false,
+ scrollBy : false,
+ scrollTo : false,
+ sessionStorage : false,
+ setInterval : false,
+ setTimeout : false,
+ SharedWorker : false,
+ status : false,
+ SVGAElement : false,
+ SVGAltGlyphDefElement: false,
+ SVGAltGlyphElement : false,
+ SVGAltGlyphItemElement: false,
+ SVGAngle : false,
+ SVGAnimateColorElement: false,
+ SVGAnimateElement : false,
+ SVGAnimateMotionElement: false,
+ SVGAnimateTransformElement: false,
+ SVGAnimatedAngle : false,
+ SVGAnimatedBoolean : false,
+ SVGAnimatedEnumeration: false,
+ SVGAnimatedInteger : false,
+ SVGAnimatedLength : false,
+ SVGAnimatedLengthList: false,
+ SVGAnimatedNumber : false,
+ SVGAnimatedNumberList: false,
+ SVGAnimatedPathData : false,
+ SVGAnimatedPoints : false,
+ SVGAnimatedPreserveAspectRatio: false,
+ SVGAnimatedRect : false,
+ SVGAnimatedString : false,
+ SVGAnimatedTransformList: false,
+ SVGAnimationElement : false,
+ SVGCSSRule : false,
+ SVGCircleElement : false,
+ SVGClipPathElement : false,
+ SVGColor : false,
+ SVGColorProfileElement: false,
+ SVGColorProfileRule : false,
+ SVGComponentTransferFunctionElement: false,
+ SVGCursorElement : false,
+ SVGDefsElement : false,
+ SVGDescElement : false,
+ SVGDocument : false,
+ SVGElement : false,
+ SVGElementInstance : false,
+ SVGElementInstanceList: false,
+ SVGEllipseElement : false,
+ SVGExternalResourcesRequired: false,
+ SVGFEBlendElement : false,
+ SVGFEColorMatrixElement: false,
+ SVGFEComponentTransferElement: false,
+ SVGFECompositeElement: false,
+ SVGFEConvolveMatrixElement: false,
+ SVGFEDiffuseLightingElement: false,
+ SVGFEDisplacementMapElement: false,
+ SVGFEDistantLightElement: false,
+ SVGFEFloodElement : false,
+ SVGFEFuncAElement : false,
+ SVGFEFuncBElement : false,
+ SVGFEFuncGElement : false,
+ SVGFEFuncRElement : false,
+ SVGFEGaussianBlurElement: false,
+ SVGFEImageElement : false,
+ SVGFEMergeElement : false,
+ SVGFEMergeNodeElement: false,
+ SVGFEMorphologyElement: false,
+ SVGFEOffsetElement : false,
+ SVGFEPointLightElement: false,
+ SVGFESpecularLightingElement: false,
+ SVGFESpotLightElement: false,
+ SVGFETileElement : false,
+ SVGFETurbulenceElement: false,
+ SVGFilterElement : false,
+ SVGFilterPrimitiveStandardAttributes: false,
+ SVGFitToViewBox : false,
+ SVGFontElement : false,
+ SVGFontFaceElement : false,
+ SVGFontFaceFormatElement: false,
+ SVGFontFaceNameElement: false,
+ SVGFontFaceSrcElement: false,
+ SVGFontFaceUriElement: false,
+ SVGForeignObjectElement: false,
+ SVGGElement : false,
+ SVGGlyphElement : false,
+ SVGGlyphRefElement : false,
+ SVGGradientElement : false,
+ SVGHKernElement : false,
+ SVGICCColor : false,
+ SVGImageElement : false,
+ SVGLangSpace : false,
+ SVGLength : false,
+ SVGLengthList : false,
+ SVGLineElement : false,
+ SVGLinearGradientElement: false,
+ SVGLocatable : false,
+ SVGMPathElement : false,
+ SVGMarkerElement : false,
+ SVGMaskElement : false,
+ SVGMatrix : false,
+ SVGMetadataElement : false,
+ SVGMissingGlyphElement: false,
+ SVGNumber : false,
+ SVGNumberList : false,
+ SVGPaint : false,
+ SVGPathElement : false,
+ SVGPathSeg : false,
+ SVGPathSegArcAbs : false,
+ SVGPathSegArcRel : false,
+ SVGPathSegClosePath : false,
+ SVGPathSegCurvetoCubicAbs: false,
+ SVGPathSegCurvetoCubicRel: false,
+ SVGPathSegCurvetoCubicSmoothAbs: false,
+ SVGPathSegCurvetoCubicSmoothRel: false,
+ SVGPathSegCurvetoQuadraticAbs: false,
+ SVGPathSegCurvetoQuadraticRel: false,
+ SVGPathSegCurvetoQuadraticSmoothAbs: false,
+ SVGPathSegCurvetoQuadraticSmoothRel: false,
+ SVGPathSegLinetoAbs : false,
+ SVGPathSegLinetoHorizontalAbs: false,
+ SVGPathSegLinetoHorizontalRel: false,
+ SVGPathSegLinetoRel : false,
+ SVGPathSegLinetoVerticalAbs: false,
+ SVGPathSegLinetoVerticalRel: false,
+ SVGPathSegList : false,
+ SVGPathSegMovetoAbs : false,
+ SVGPathSegMovetoRel : false,
+ SVGPatternElement : false,
+ SVGPoint : false,
+ SVGPointList : false,
+ SVGPolygonElement : false,
+ SVGPolylineElement : false,
+ SVGPreserveAspectRatio: false,
+ SVGRadialGradientElement: false,
+ SVGRect : false,
+ SVGRectElement : false,
+ SVGRenderingIntent : false,
+ SVGSVGElement : false,
+ SVGScriptElement : false,
+ SVGSetElement : false,
+ SVGStopElement : false,
+ SVGStringList : false,
+ SVGStylable : false,
+ SVGStyleElement : false,
+ SVGSwitchElement : false,
+ SVGSymbolElement : false,
+ SVGTRefElement : false,
+ SVGTSpanElement : false,
+ SVGTests : false,
+ SVGTextContentElement: false,
+ SVGTextElement : false,
+ SVGTextPathElement : false,
+ SVGTextPositioningElement: false,
+ SVGTitleElement : false,
+ SVGTransform : false,
+ SVGTransformList : false,
+ SVGTransformable : false,
+ SVGURIReference : false,
+ SVGUnitTypes : false,
+ SVGUseElement : false,
+ SVGVKernElement : false,
+ SVGViewElement : false,
+ SVGViewSpec : false,
+ SVGZoomAndPan : false,
+ TimeEvent : false,
+ top : false,
+ WebSocket : false,
+ window : false,
+ Worker : false,
+ XMLHttpRequest : false,
+ XMLSerializer : false,
+ XPathEvaluator : false,
+ XPathException : false,
+ XPathExpression : false,
+ XPathNamespace : false,
+ XPathNSResolver : false,
+ XPathResult : false
+};
+
+exports.devel = {
+ alert : false,
+ confirm: false,
+ console: false,
+ Debug : false,
+ opera : false,
+ prompt : false
+};
+
+exports.worker = {
+ importScripts: true,
+ postMessage : true,
+ self : true
+};
+
+// Widely adopted global names that are not part of ECMAScript standard
+exports.nonstandard = {
+ escape : false,
+ unescape: false
+};
+
+// Globals provided by popular JavaScript environments.
+
+exports.couch = {
+ "require" : false,
+ respond : false,
+ getRow : false,
+ emit : false,
+ send : false,
+ start : false,
+ sum : false,
+ log : false,
+ exports : false,
+ module : false,
+ provides : false
+};
+
+exports.node = {
+ __filename : false,
+ __dirname : false,
+ Buffer : false,
+ console : false,
+ exports : true, // In Node it is ok to exports = module.exports = foo();
+ GLOBAL : false,
+ global : false,
+ module : false,
+ process : false,
+ require : false,
+ setTimeout : false,
+ clearTimeout : false,
+ setInterval : false,
+ clearInterval : false,
+ setImmediate : false, // v0.9.1+
+ clearImmediate: false // v0.9.1+
+};
+
+exports.phantom = {
+ phantom : true,
+ require : true,
+ WebPage : true,
+ console : true, // in examples, but undocumented
+ exports : true // v1.7+
+};
+
+exports.rhino = {
+ defineClass : false,
+ deserialize : false,
+ gc : false,
+ help : false,
+ importPackage: false,
+ "java" : false,
+ load : false,
+ loadClass : false,
+ print : false,
+ quit : false,
+ readFile : false,
+ readUrl : false,
+ runCommand : false,
+ seal : false,
+ serialize : false,
+ spawn : false,
+ sync : false,
+ toint32 : false,
+ version : false
+};
+
+exports.shelljs = {
+ target : false,
+ echo : false,
+ exit : false,
+ cd : false,
+ pwd : false,
+ ls : false,
+ find : false,
+ cp : false,
+ rm : false,
+ mv : false,
+ mkdir : false,
+ test : false,
+ cat : false,
+ sed : false,
+ grep : false,
+ which : false,
+ dirs : false,
+ pushd : false,
+ popd : false,
+ env : false,
+ exec : false,
+ chmod : false,
+ config : false,
+ error : false,
+ tempdir : false
+};
+
+exports.typed = {
+ ArrayBuffer : false,
+ ArrayBufferView : false,
+ DataView : false,
+ Float32Array : false,
+ Float64Array : false,
+ Int16Array : false,
+ Int32Array : false,
+ Int8Array : false,
+ Uint16Array : false,
+ Uint32Array : false,
+ Uint8Array : false,
+ Uint8ClampedArray : false
+};
+
+exports.wsh = {
+ ActiveXObject : true,
+ Enumerator : true,
+ GetObject : true,
+ ScriptEngine : true,
+ ScriptEngineBuildVersion : true,
+ ScriptEngineMajorVersion : true,
+ ScriptEngineMinorVersion : true,
+ VBArray : true,
+ WSH : true,
+ WScript : true,
+ XDomainRequest : true
+};
+
+// Globals provided by popular JavaScript libraries.
+
+exports.dojo = {
+ dojo : false,
+ dijit : false,
+ dojox : false,
+ define : false,
+ "require": false
+};
+
+exports.jquery = {
+ "$" : false,
+ jQuery : false
+};
+
+exports.mootools = {
+ "$" : false,
+ "$$" : false,
+ Asset : false,
+ Browser : false,
+ Chain : false,
+ Class : false,
+ Color : false,
+ Cookie : false,
+ Core : false,
+ Document : false,
+ DomReady : false,
+ DOMEvent : false,
+ DOMReady : false,
+ Drag : false,
+ Element : false,
+ Elements : false,
+ Event : false,
+ Events : false,
+ Fx : false,
+ Group : false,
+ Hash : false,
+ HtmlTable : false,
+ Iframe : false,
+ IframeShim : false,
+ InputValidator: false,
+ instanceOf : false,
+ Keyboard : false,
+ Locale : false,
+ Mask : false,
+ MooTools : false,
+ Native : false,
+ Options : false,
+ OverText : false,
+ Request : false,
+ Scroller : false,
+ Slick : false,
+ Slider : false,
+ Sortables : false,
+ Spinner : false,
+ Swiff : false,
+ Tips : false,
+ Type : false,
+ typeOf : false,
+ URI : false,
+ Window : false
+};
+
+exports.prototypejs = {
+ "$" : false,
+ "$$" : false,
+ "$A" : false,
+ "$F" : false,
+ "$H" : false,
+ "$R" : false,
+ "$break" : false,
+ "$continue" : false,
+ "$w" : false,
+ Abstract : false,
+ Ajax : false,
+ Class : false,
+ Enumerable : false,
+ Element : false,
+ Event : false,
+ Field : false,
+ Form : false,
+ Hash : false,
+ Insertion : false,
+ ObjectRange : false,
+ PeriodicalExecuter: false,
+ Position : false,
+ Prototype : false,
+ Selector : false,
+ Template : false,
+ Toggle : false,
+ Try : false,
+ Autocompleter : false,
+ Builder : false,
+ Control : false,
+ Draggable : false,
+ Draggables : false,
+ Droppables : false,
+ Effect : false,
+ Sortable : false,
+ SortableObserver : false,
+ Sound : false,
+ Scriptaculous : false
+};
+
+exports.yui = {
+ YUI : false,
+ Y : false,
+ YUI_config: false
+};
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-with.git
More information about the Pkg-javascript-commits
mailing list