11(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
2+ // build script for generating processing.js
3+
4+ var Browser = {
5+ isDomPresent: true,
6+ navigator: navigator,
7+ window: window,
8+ document: document,
9+ ajax: function(url) {
10+ var xhr = new XMLHttpRequest();
11+ xhr.open("GET", url, false);
12+ if (xhr.overrideMimeType) {
13+ xhr.overrideMimeType("text/plain");
14+ }
15+ xhr.setRequestHeader("If-Modified-Since", "Fri, 01 Jan 1960 00:00:00 GMT");
16+ xhr.send(null);
17+ // failed request?
18+ if (xhr.status !== 200 && xhr.status !== 0) { throw ("XMLHttpRequest failed, status code " + xhr.status); }
19+ return xhr.responseText;
20+ }
21+ };
22+
23+ window.Processing = require('./src/')(Browser);
24+
25+ },{"./src/":28}],2:[function(require,module,exports){
226module.exports={
327 "name": "processing-js",
4- "version": "1.6.0 ",
28+ "version": "1.6.1 ",
529 "author": "Processing.js",
630 "repository": {
731 "type": "git",
@@ -33,7 +57,7 @@ module.exports={
3357 }
3458}
3559
36- },{}],2 :[function(require,module,exports){
60+ },{}],3 :[function(require,module,exports){
3761/**
3862* A ObjectIterator is an iterator wrapper for objects. If passed object contains
3963* the iterator method, the object instance will be replaced by the result returned by
@@ -59,7 +83,7 @@ module.exports = function ObjectIterator(obj) {
5983 }
6084};
6185
62- },{}],3 :[function(require,module,exports){
86+ },{}],4 :[function(require,module,exports){
6387/**
6488 * Processing.js environment constants
6589 */
@@ -364,7 +388,7 @@ module.exports = {
364388 MAX_LIGHTS: 8
365389};
366390
367- },{}],4 :[function(require,module,exports){
391+ },{}],5 :[function(require,module,exports){
368392// the logger for print() and println()
369393module.exports = function PjsConsole(document) {
370394 var e = { BufferMax: 200 },
@@ -509,7 +533,7 @@ module.exports = function PjsConsole(document) {
509533 return e;
510534};
511535
512- },{}],5 :[function(require,module,exports){
536+ },{}],6 :[function(require,module,exports){
513537/**
514538 * Processing.js default scope
515539 */
@@ -740,7 +764,7 @@ module.exports = function(options) {
740764 return defaultScope;
741765};
742766
743- },{}],6 :[function(require,module,exports){
767+ },{}],7 :[function(require,module,exports){
744768/**
745769 * Finalise the Processing.js object.
746770 */
@@ -1080,7 +1104,7 @@ module.exports = function finalizeProcessing(Processing, options) {
10801104 return Processing;
10811105};
10821106
1083- },{}],7 :[function(require,module,exports){
1107+ },{}],8 :[function(require,module,exports){
10841108/**
10851109 * Returns Java equals() result for two objects. If the first object
10861110 * has the "equals" function, it preforms the call of this function.
@@ -1107,7 +1131,7 @@ module.exports = function virtEquals(obj, other) {
11071131 return obj === other;
11081132};
11091133
1110- },{}],8 :[function(require,module,exports){
1134+ },{}],9 :[function(require,module,exports){
11111135/**
11121136 * Returns Java hashCode() result for the object. If the object has the "hashCode" function,
11131137 * it preforms the call of this function. Otherwise it uses/creates the "$id" property,
@@ -1136,7 +1160,7 @@ module.exports = function virtHashCode(obj, undef) {
11361160 return obj.$id;
11371161};
11381162
1139- },{}],9 :[function(require,module,exports){
1163+ },{}],10 :[function(require,module,exports){
11401164/**
11411165 * An ArrayList stores a variable number of objects.
11421166 *
@@ -1414,7 +1438,7 @@ module.exports = function(options) {
14141438 return ArrayList;
14151439};
14161440
1417- },{}],10 :[function(require,module,exports){
1441+ },{}],11 :[function(require,module,exports){
14181442module.exports = (function(charMap, undef) {
14191443
14201444 var Char = function(chr) {
@@ -1441,7 +1465,7 @@ module.exports = (function(charMap, undef) {
14411465 return Char;
14421466}({}));
14431467
1444- },{}],11 :[function(require,module,exports){
1468+ },{}],12 :[function(require,module,exports){
14451469/**
14461470* A HashMap stores a collection of objects, each referenced by a key. This is similar to an Array, only
14471471* instead of accessing elements with a numeric index, a String is used. (If you are familiar with
@@ -1854,7 +1878,7 @@ module.exports = function(options) {
18541878 return HashMap;
18551879};
18561880
1857- },{}],12 :[function(require,module,exports){
1881+ },{}],13 :[function(require,module,exports){
18581882// module export
18591883module.exports = function(options,undef) {
18601884 var window = options.Browser.window,
@@ -2229,7 +2253,7 @@ module.exports = function(options,undef) {
22292253
22302254 return PFont;
22312255};
2232- },{}],13 :[function(require,module,exports){
2256+ },{}],14 :[function(require,module,exports){
22332257module.exports = function(options, undef) {
22342258
22352259 // FIXME: hack
@@ -2626,7 +2650,7 @@ module.exports = function(options, undef) {
26262650 return PMatrix2D;
26272651};
26282652
2629- },{}],14 :[function(require,module,exports){
2653+ },{}],15 :[function(require,module,exports){
26302654module.exports = function(options, undef) {
26312655
26322656 // FIXME: hack
@@ -3224,7 +3248,7 @@ module.exports = function(options, undef) {
32243248
32253249 return PMatrix3D;
32263250};
3227- },{}],15 :[function(require,module,exports){
3251+ },{}],16 :[function(require,module,exports){
32283252module.exports = function(options) {
32293253 var PConstants = options.PConstants,
32303254 PMatrix2D = options.PMatrix2D,
@@ -3886,7 +3910,7 @@ module.exports = function(options) {
38863910
38873911 return PShape;
38883912};
3889- },{}],16 :[function(require,module,exports){
3913+ },{}],17 :[function(require,module,exports){
38903914/**
38913915 * SVG stands for Scalable Vector Graphics, a portable graphics format. It is
38923916 * a vector format so it allows for infinite resolution and relatively small
@@ -4978,7 +5002,7 @@ module.exports = function(options) {
49785002 return PShapeSVG;
49795003};
49805004
4981- },{}],17 :[function(require,module,exports){
5005+ },{}],18 :[function(require,module,exports){
49825006module.exports = function(options, undef) {
49835007 var PConstants = options.PConstants;
49845008
@@ -5224,7 +5248,7 @@ module.exports = function(options, undef) {
52245248 return PVector;
52255249};
52265250
5227- },{}],18 :[function(require,module,exports){
5251+ },{}],19 :[function(require,module,exports){
52285252/**
52295253 * XMLAttribute is an attribute of a XML element.
52305254 *
@@ -5306,7 +5330,7 @@ module.exports = function() {
53065330 return XMLAttribute;
53075331};
53085332
5309- },{}],19 :[function(require,module,exports){
5333+ },{}],20 :[function(require,module,exports){
53105334/**
53115335 * XMLElement is a representation of an XML object. The object is able to parse XML code
53125336 *
@@ -6114,7 +6138,7 @@ module.exports = function(options, undef) {
61146138 return XMLElement;
61156139};
61166140
6117- },{}],20 :[function(require,module,exports){
6141+ },{}],21 :[function(require,module,exports){
61186142/**
61196143 * web colors, by name
61206144 */
@@ -6261,7 +6285,7 @@ module.exports = {
62616285 yellowgreen: "#9acd32"
62626286 };
62636287
6264- },{}],21 :[function(require,module,exports){
6288+ },{}],22 :[function(require,module,exports){
62656289module.exports = function(virtHashCode, virtEquals, undef) {
62666290
62676291 return function withProxyFunctions(p, removeFirstArgument) {
@@ -6558,7 +6582,7 @@ module.exports = function(virtHashCode, virtEquals, undef) {
65586582
65596583};
65606584
6561- },{}],22 :[function(require,module,exports){
6585+ },{}],23 :[function(require,module,exports){
65626586/**
65636587 * For many "math" functions, we can delegate
65646588 * to the Math object. For others, we can't.
@@ -7248,7 +7272,7 @@ module.exports = function withMath(p, undef) {
72487272 };
72497273};
72507274
7251- },{}],23 :[function(require,module,exports){
7275+ },{}],24 :[function(require,module,exports){
72527276/**
72537277 * Common functions traditionally on "p" that should be class functions
72547278 * that get bound to "p" when an instance is actually built, instead.
@@ -7482,7 +7506,7 @@ module.exports = (function commonFunctions(undef) {
74827506 return CommonFunctions;
74837507}());
74847508
7485- },{}],24 :[function(require,module,exports){
7509+ },{}],25 :[function(require,module,exports){
74867510/**
74877511 * Touch and Mouse event handling
74887512 */
@@ -7818,7 +7842,7 @@ module.exports = function withTouch(p, curElement, attachEventHandler, document,
78187842};
78197843
78207844
7821- },{}],25 :[function(require,module,exports){
7845+ },{}],26 :[function(require,module,exports){
78227846/**
78237847 * The parser for turning Processing syntax into Pjs JavaScript.
78247848 * This code is not trivial; unless you know what you're doing,
@@ -9564,7 +9588,7 @@ module.exports = function setupParser(Processing, options) {
95649588 return Processing;
95659589};
95669590
9567- },{"../Helpers/PjsConsole":4 }],26 :[function(require,module,exports){
9591+ },{"../Helpers/PjsConsole":5 }],27 :[function(require,module,exports){
95689592/**
95699593 * Processing.js object
95709594 */
@@ -18034,7 +18058,8 @@ module.exports = function setupParser(Processing, options) {
1803418058 * @see quad
1803518059 */
1803618060 Drawing2D.prototype.rect = function(x, y, width, height, tl, tr, br, bl) {
18037- if (!width && !height) {
18061+ // width and height need to be defined, numerical values
18062+ if (width!=''+width && height!=''+height) {
1803818063 return;
1803918064 }
1804018065
@@ -18062,6 +18087,11 @@ module.exports = function setupParser(Processing, options) {
1806218087 return;
1806318088 }
1806418089
18090+ // if (width < 0) { x += width; width = -width; }
18091+ // if (height < 0) { y += height; height = -height; }
18092+
18093+ console.log(x,y,width,height);
18094+
1806518095 // Translate the line by (0.5, 0.5) to draw a crisp rectangle border
1806618096 if (doStroke && lineWidth % 2 === 1) {
1806718097 curContext.translate(0.5, 0.5);
@@ -21634,7 +21664,7 @@ module.exports = function setupParser(Processing, options) {
2163421664 return Processing;
2163521665};
2163621666
21637- },{}],27 :[function(require,module,exports){
21667+ },{}],28 :[function(require,module,exports){
2163821668// Base source files
2163921669var source = {
2164021670 virtEquals: require("./Helpers/virtEquals"),
@@ -21768,28 +21798,4 @@ module.exports = function buildProcessingJS(Browser, testHarness) {
2176821798 return Processing;
2176921799};
2177021800
21771- },{"../package.json":1,"./Helpers/ObjectIterator":2,"./Helpers/PConstants":3,"./Helpers/defaultScope":5,"./Helpers/finalizeProcessing":6,"./Helpers/virtEquals":7,"./Helpers/virtHashCode":8,"./Objects/ArrayList":9,"./Objects/Char":10,"./Objects/HashMap":11,"./Objects/PFont":12,"./Objects/PMatrix2D":13,"./Objects/PMatrix3D":14,"./Objects/PShape":15,"./Objects/PShapeSVG":16,"./Objects/PVector":17,"./Objects/XMLAttribute":18,"./Objects/XMLElement":19,"./Objects/webcolors":20,"./P5Functions/JavaProxyFunctions":21,"./P5Functions/Math.js":22,"./P5Functions/commonFunctions":23,"./P5Functions/touchmouse":24,"./Parser/Parser":25,"./Processing":26}],28:[function(require,module,exports){
21772- // build script for generating processing.js
21773-
21774- var Browser = {
21775- isDomPresent: true,
21776- navigator: navigator,
21777- window: window,
21778- document: document,
21779- ajax: function(url) {
21780- var xhr = new XMLHttpRequest();
21781- xhr.open("GET", url, false);
21782- if (xhr.overrideMimeType) {
21783- xhr.overrideMimeType("text/plain");
21784- }
21785- xhr.setRequestHeader("If-Modified-Since", "Fri, 01 Jan 1960 00:00:00 GMT");
21786- xhr.send(null);
21787- // failed request?
21788- if (xhr.status !== 200 && xhr.status !== 0) { throw ("XMLHttpRequest failed, status code " + xhr.status); }
21789- return xhr.responseText;
21790- }
21791- };
21792-
21793- window.Processing = require('./src/')(Browser);
21794-
21795- },{"./src/":27}]},{},[28]);
21801+ },{"../package.json":2,"./Helpers/ObjectIterator":3,"./Helpers/PConstants":4,"./Helpers/defaultScope":6,"./Helpers/finalizeProcessing":7,"./Helpers/virtEquals":8,"./Helpers/virtHashCode":9,"./Objects/ArrayList":10,"./Objects/Char":11,"./Objects/HashMap":12,"./Objects/PFont":13,"./Objects/PMatrix2D":14,"./Objects/PMatrix3D":15,"./Objects/PShape":16,"./Objects/PShapeSVG":17,"./Objects/PVector":18,"./Objects/XMLAttribute":19,"./Objects/XMLElement":20,"./Objects/webcolors":21,"./P5Functions/JavaProxyFunctions":22,"./P5Functions/Math.js":23,"./P5Functions/commonFunctions":24,"./P5Functions/touchmouse":25,"./Parser/Parser":26,"./Processing":27}]},{},[1]);