| Index: client/samples/spirodraw/Spirodraw.dart.js
|
| diff --git a/client/samples/spirodraw/Spirodraw.dart.js b/client/samples/spirodraw/Spirodraw.dart.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e78a2d94a842c18b511ad530e3142e6e2b5b265a
|
| --- /dev/null
|
| +++ b/client/samples/spirodraw/Spirodraw.dart.js
|
| @@ -0,0 +1,1416 @@
|
| +// ********** Library dart:core **************
|
| +// ********** Natives dart:core **************
|
| +function $throw(e) {
|
| + // If e is not a value, we can use V8's captureStackTrace utility method.
|
| + // TODO(jmesserly): capture the stack trace on other JS engines.
|
| + if (e && (typeof e == 'object') && Error.captureStackTrace) {
|
| + // TODO(jmesserly): this will clobber the e.stack property
|
| + Error.captureStackTrace(e, $throw);
|
| + }
|
| + throw e;
|
| +}
|
| +Object.defineProperty(Object.prototype, '$index', { value: function(i) {
|
| + var proto = Object.getPrototypeOf(this);
|
| + if (proto !== Object) {
|
| + proto.$index = function(i) { return this[i]; }
|
| + }
|
| + return this[i];
|
| +}, enumerable: false, writable: true, configurable: true});
|
| +Object.defineProperty(Array.prototype, '$index', { value: function(i) {
|
| + return this[i];
|
| +}, enumerable: false, writable: true, configurable: true});
|
| +Object.defineProperty(String.prototype, '$index', { value: function(i) {
|
| + return this[i];
|
| +}, enumerable: false, writable: true, configurable: true});
|
| +function $wrap_call$1(fn) { return fn; }
|
| +function $mod(x, y) {
|
| + if (typeof(x) == 'number' && typeof(y) == 'number') {
|
| + var result = x % y;
|
| + if (result == 0) {
|
| + return 0; // Make sure we don't return -0.0.
|
| + } else if (result < 0) {
|
| + if (y < 0) {
|
| + return result - y;
|
| + } else {
|
| + return result + y;
|
| + }
|
| + }
|
| + return result;
|
| + } else {
|
| + return x.$mod(y);
|
| + }
|
| +}
|
| +function $truncdiv(x, y) {
|
| + if (typeof(x) == 'number' && typeof(y) == 'number') {
|
| + if (y == 0) $throw(new IntegerDivisionByZeroException());
|
| + var tmp = x / y;
|
| + return (tmp < 0) ? Math.ceil(tmp) : Math.floor(tmp);
|
| + } else {
|
| + return x.$truncdiv(y);
|
| + }
|
| +}
|
| +Object.defineProperty(Object.prototype, '$typeNameOf', { value: function() {
|
| + if ((typeof(window) != 'undefined' && window.constructor.name == 'DOMWindow')
|
| + || typeof(process) != 'undefined') { // fast-path for Chrome and Node
|
| + return this.constructor.name;
|
| + }
|
| + var str = Object.prototype.toString.call(this);
|
| + str = str.substring(8, str.length - 1);
|
| + if (str == 'Window') {
|
| + str = 'DOMWindow';
|
| + } else if (str == 'Document') {
|
| + str = 'HTMLDocument';
|
| + }
|
| + return str;
|
| +}, enumerable: false, writable: true, configurable: true});
|
| +Object.defineProperty(Object.prototype, "get$typeName", { value: Object.prototype.$typeNameOf, enumerable: false, writable: true, configurable: true});
|
| +// ********** Code for Object **************
|
| +Object.defineProperty(Object.prototype, "noSuchMethod", { value: function(name, args) {
|
| + $throw(new NoSuchMethodException(this, name, args));
|
| +}, enumerable: false, writable: true, configurable: true });
|
| +Object.defineProperty(Object.prototype, "add$1", { value: function($0) {
|
| + return this.noSuchMethod$2("add", [$0]);
|
| +}, enumerable: false, writable: true, configurable: true });
|
| +Object.defineProperty(Object.prototype, "hasNext$0", { value: function() {
|
| + return this.noSuchMethod$2("hasNext", []);
|
| +}, enumerable: false, writable: true, configurable: true });
|
| +Object.defineProperty(Object.prototype, "iterator$0", { value: function() {
|
| + return this.noSuchMethod$2("iterator", []);
|
| +}, enumerable: false, writable: true, configurable: true });
|
| +Object.defineProperty(Object.prototype, "next$0", { value: function() {
|
| + return this.noSuchMethod$2("next", []);
|
| +}, enumerable: false, writable: true, configurable: true });
|
| +Object.defineProperty(Object.prototype, "noSuchMethod$2", { value: function($0, $1) {
|
| + return this.noSuchMethod($0, $1);
|
| +}, enumerable: false, writable: true, configurable: true });
|
| +Object.defineProperty(Object.prototype, "toString$0", { value: function() {
|
| + return this.toString();
|
| +}, enumerable: false, writable: true, configurable: true });
|
| +// ********** Code for IllegalAccessException **************
|
| +function IllegalAccessException() {
|
| +
|
| +}
|
| +IllegalAccessException.prototype.toString = function() {
|
| + return "Attempt to modify an immutable object";
|
| +}
|
| +IllegalAccessException.prototype.toString$0 = IllegalAccessException.prototype.toString;
|
| +// ********** Code for NoSuchMethodException **************
|
| +function NoSuchMethodException(_receiver, _functionName, _arguments) {
|
| + this._receiver = _receiver;
|
| + this._functionName = _functionName;
|
| + this._arguments = _arguments;
|
| +}
|
| +NoSuchMethodException.prototype.toString = function() {
|
| + var sb = new StringBufferImpl("");
|
| + for (var i = (0);
|
| + i < this._arguments.get$length(); i++) {
|
| + if (i > (0)) {
|
| + sb.add(", ");
|
| + }
|
| + sb.add(this._arguments.$index(i));
|
| + }
|
| + sb.add("]");
|
| + return ("NoSuchMethodException - receiver: '" + this._receiver + "' ") + ("function name: '" + this._functionName + "' arguments: [" + sb + "]");
|
| +}
|
| +NoSuchMethodException.prototype.toString$0 = NoSuchMethodException.prototype.toString;
|
| +// ********** Code for ClosureArgumentMismatchException **************
|
| +function ClosureArgumentMismatchException() {
|
| +
|
| +}
|
| +ClosureArgumentMismatchException.prototype.toString = function() {
|
| + return "Closure argument mismatch";
|
| +}
|
| +ClosureArgumentMismatchException.prototype.toString$0 = ClosureArgumentMismatchException.prototype.toString;
|
| +// ********** Code for BadNumberFormatException **************
|
| +function BadNumberFormatException(_s) {
|
| + this._s = _s;
|
| +}
|
| +BadNumberFormatException.prototype.toString = function() {
|
| + return ("BadNumberFormatException: '" + this._s + "'");
|
| +}
|
| +BadNumberFormatException.prototype.toString$0 = BadNumberFormatException.prototype.toString;
|
| +// ********** Code for NoMoreElementsException **************
|
| +function NoMoreElementsException() {
|
| +
|
| +}
|
| +NoMoreElementsException.prototype.toString = function() {
|
| + return "NoMoreElementsException";
|
| +}
|
| +NoMoreElementsException.prototype.toString$0 = NoMoreElementsException.prototype.toString;
|
| +// ********** Code for dart_core_Function **************
|
| +Function.prototype.to$call$1 = function() {
|
| + this.call$1 = this._genStub(1);
|
| + this.to$call$1 = function() { return this.call$1; };
|
| + return this.call$1;
|
| +};
|
| +Function.prototype.call$1 = function($0) {
|
| + return this.to$call$1()($0);
|
| +};
|
| +function to$call$1(f) { return f && f.to$call$1(); }
|
| +// ********** Code for Math **************
|
| +Math.parseInt = function(str) {
|
| + var ret = parseInt(str);
|
| + if (isNaN(ret)) $throw(new BadNumberFormatException(str));
|
| + return ret;
|
| +}
|
| +Math.min = function(a, b) {
|
| + if (a == b) return a;
|
| + if (a < b) {
|
| + if (isNaN(b)) return b;
|
| + else return a;
|
| + }
|
| + if (isNaN(a)) return a;
|
| + else return b;
|
| +}
|
| +Math.max = function(a, b) {
|
| + return (a >= b) ? a : b;
|
| +}
|
| +// ********** Code for top level **************
|
| +// ********** Library dart:coreimpl **************
|
| +// ********** Code for ListFactory **************
|
| +ListFactory = Array;
|
| +ListFactory.ListFactory$from$factory = function(other) {
|
| + var list = [];
|
| + for (var $$i = other.iterator$0(); $$i.hasNext$0(); ) {
|
| + var e = $$i.next$0();
|
| + list.add$1(e);
|
| + }
|
| + return list;
|
| +}
|
| +Object.defineProperty(ListFactory.prototype, "get$length", { value: function() { return this.length; }, enumerable: false, writable: true, configurable: true });
|
| +Object.defineProperty(ListFactory.prototype, "set$length", { value: function(value) { return this.length = value; }, enumerable: false, writable: true, configurable: true });
|
| +Object.defineProperty(ListFactory.prototype, "add", { value: function(value) {
|
| + this.push(value);
|
| +}, enumerable: false, writable: true, configurable: true });
|
| +Object.defineProperty(ListFactory.prototype, "clear", { value: function() {
|
| + this.set$length((0));
|
| +}, enumerable: false, writable: true, configurable: true });
|
| +Object.defineProperty(ListFactory.prototype, "iterator", { value: function() {
|
| + return new ListIterator(this);
|
| +}, enumerable: false, writable: true, configurable: true });
|
| +Object.defineProperty(ListFactory.prototype, "add$1", { value: ListFactory.prototype.add, enumerable: false, writable: true, configurable: true });
|
| +Object.defineProperty(ListFactory.prototype, "iterator$0", { value: ListFactory.prototype.iterator, enumerable: false, writable: true, configurable: true });
|
| +ListFactory_E = ListFactory;
|
| +ListFactory_dart_core_String = ListFactory;
|
| +// ********** Code for ListIterator **************
|
| +function ListIterator(array) {
|
| + this._array = array;
|
| + this._pos = (0);
|
| +}
|
| +ListIterator.prototype.hasNext = function() {
|
| + return this._array.get$length() > this._pos;
|
| +}
|
| +ListIterator.prototype.next = function() {
|
| + if (!this.hasNext()) {
|
| + $throw(const$0002);
|
| + }
|
| + return this._array.$index(this._pos++);
|
| +}
|
| +ListIterator.prototype.hasNext$0 = ListIterator.prototype.hasNext;
|
| +ListIterator.prototype.next$0 = ListIterator.prototype.next;
|
| +// ********** Code for ImmutableList **************
|
| +/** Implements extends for Dart classes on JavaScript prototypes. */
|
| +function $inherits(child, parent) {
|
| + if (child.prototype.__proto__) {
|
| + child.prototype.__proto__ = parent.prototype;
|
| + } else {
|
| + function tmp() {};
|
| + tmp.prototype = parent.prototype;
|
| + child.prototype = new tmp();
|
| + child.prototype.constructor = child;
|
| + }
|
| +}
|
| +$inherits(ImmutableList, ListFactory_E);
|
| +function ImmutableList(length) {
|
| + Array.call(this, length);
|
| +}
|
| +ImmutableList.ImmutableList$from$factory = function(other) {
|
| + return _constList(other);
|
| +}
|
| +ImmutableList.prototype.get$length = function() {
|
| + return this.length;
|
| +}
|
| +ImmutableList.prototype.set$length = function(length) {
|
| + $throw(const$0001);
|
| +}
|
| +ImmutableList.prototype.add = function(element) {
|
| + $throw(const$0001);
|
| +}
|
| +ImmutableList.prototype.clear = function() {
|
| + $throw(const$0001);
|
| +}
|
| +ImmutableList.prototype.toString = function() {
|
| + return ListFactory.ListFactory$from$factory(this).toString$0();
|
| +}
|
| +ImmutableList.prototype.add$1 = ImmutableList.prototype.add;
|
| +ImmutableList.prototype.toString$0 = ImmutableList.prototype.toString;
|
| +// ********** Code for NumImplementation **************
|
| +NumImplementation = Number;
|
| +NumImplementation.prototype.abs = function() {
|
| + 'use strict'; return Math.abs(this);
|
| +}
|
| +NumImplementation.prototype.floor = function() {
|
| + 'use strict'; return Math.floor(this);
|
| +}
|
| +NumImplementation.prototype.toInt = function() {
|
| + 'use strict';
|
| + if (isNaN(this)) $throw(new BadNumberFormatException("NaN"));
|
| + if ((this == Infinity) || (this == -Infinity)) {
|
| + $throw(new BadNumberFormatException("Infinity"));
|
| + }
|
| + var truncated = (this < 0) ? Math.ceil(this) : Math.floor(this);
|
| + if (truncated == -0.0) return 0;
|
| + return truncated;
|
| +}
|
| +// ********** Code for StringBufferImpl **************
|
| +function StringBufferImpl(content) {
|
| + this.clear();
|
| + this.add(content);
|
| +}
|
| +StringBufferImpl.prototype.add = function(obj) {
|
| + var str = obj.toString$0();
|
| + if (str == null || str.isEmpty()) return this;
|
| + this._buffer.add(str);
|
| + this._length = this._length + str.length;
|
| + return this;
|
| +}
|
| +StringBufferImpl.prototype.clear = function() {
|
| + this._buffer = new Array();
|
| + this._length = (0);
|
| + return this;
|
| +}
|
| +StringBufferImpl.prototype.toString = function() {
|
| + if (this._buffer.get$length() == (0)) return "";
|
| + if (this._buffer.get$length() == (1)) return this._buffer.$index((0));
|
| + var result = StringBase.concatAll(this._buffer);
|
| + this._buffer.clear();
|
| + this._buffer.add(result);
|
| + return result;
|
| +}
|
| +StringBufferImpl.prototype.add$1 = StringBufferImpl.prototype.add;
|
| +StringBufferImpl.prototype.toString$0 = StringBufferImpl.prototype.toString;
|
| +// ********** Code for StringBase **************
|
| +function StringBase() {}
|
| +StringBase.join = function(strings, separator) {
|
| + if (strings.get$length() == (0)) return "";
|
| + var s = strings.$index((0));
|
| + for (var i = (1);
|
| + i < strings.get$length(); i++) {
|
| + s = s + separator + strings.$index(i);
|
| + }
|
| + return s;
|
| +}
|
| +StringBase.concatAll = function(strings) {
|
| + return StringBase.join(strings, "");
|
| +}
|
| +// ********** Code for StringImplementation **************
|
| +StringImplementation = String;
|
| +StringImplementation.prototype.isEmpty = function() {
|
| + return this.length == (0);
|
| +}
|
| +// ********** Code for _Worker **************
|
| +// ********** Code for _ArgumentMismatchException **************
|
| +$inherits(_ArgumentMismatchException, ClosureArgumentMismatchException);
|
| +function _ArgumentMismatchException(_message) {
|
| + this._dart_coreimpl_message = _message;
|
| + ClosureArgumentMismatchException.call(this);
|
| +}
|
| +_ArgumentMismatchException.prototype.toString = function() {
|
| + return ("Closure argument mismatch: " + this._dart_coreimpl_message);
|
| +}
|
| +_ArgumentMismatchException.prototype.toString$0 = _ArgumentMismatchException.prototype.toString;
|
| +// ********** Code for _FunctionImplementation **************
|
| +_FunctionImplementation = Function;
|
| +_FunctionImplementation.prototype._genStub = function(argsLength, names) {
|
| + // Fast path #1: if no named arguments and arg count matches
|
| + if (this.length == argsLength && !names) {
|
| + return this;
|
| + }
|
| +
|
| + var paramsNamed = this.$optional ? (this.$optional.length / 2) : 0;
|
| + var paramsBare = this.length - paramsNamed;
|
| + var argsNamed = names ? names.length : 0;
|
| + var argsBare = argsLength - argsNamed;
|
| +
|
| + // Check we got the right number of arguments
|
| + if (argsBare < paramsBare || argsLength > this.length ||
|
| + argsNamed > paramsNamed) {
|
| + return function() {
|
| + $throw(new _ArgumentMismatchException(
|
| + 'Wrong number of arguments to function. Expected ' + paramsBare +
|
| + ' positional arguments and at most ' + paramsNamed +
|
| + ' named arguments, but got ' + argsBare +
|
| + ' positional arguments and ' + argsNamed + ' named arguments.'));
|
| + };
|
| + }
|
| +
|
| + // First, fill in all of the default values
|
| + var p = new Array(paramsBare);
|
| + if (paramsNamed) {
|
| + p = p.concat(this.$optional.slice(paramsNamed));
|
| + }
|
| + // Fill in positional args
|
| + var a = new Array(argsLength);
|
| + for (var i = 0; i < argsBare; i++) {
|
| + p[i] = a[i] = '$' + i;
|
| + }
|
| + // Then overwrite with supplied values for optional args
|
| + var lastParameterIndex;
|
| + var namesInOrder = true;
|
| + for (var i = 0; i < argsNamed; i++) {
|
| + var name = names[i];
|
| + a[i + argsBare] = name;
|
| + var j = this.$optional.indexOf(name);
|
| + if (j < 0 || j >= paramsNamed) {
|
| + return function() {
|
| + $throw(new _ArgumentMismatchException(
|
| + 'Named argument "' + name + '" was not expected by function.' +
|
| + ' Did you forget to mark the function parameter [optional]?'));
|
| + };
|
| + } else if (lastParameterIndex && lastParameterIndex > j) {
|
| + namesInOrder = false;
|
| + }
|
| + p[j + paramsBare] = name;
|
| + lastParameterIndex = j;
|
| + }
|
| +
|
| + if (this.length == argsLength && namesInOrder) {
|
| + // Fast path #2: named arguments, but they're in order and all supplied.
|
| + return this;
|
| + }
|
| +
|
| + // Note: using Function instead of 'eval' to get a clean scope.
|
| + // TODO(jmesserly): evaluate the performance of these stubs.
|
| + var f = 'function(' + a.join(',') + '){return $f(' + p.join(',') + ');}';
|
| + return new Function('$f', 'return ' + f + '').call(null, this);
|
| +
|
| +}
|
| +// ********** Code for top level **************
|
| +function _constList(other) {
|
| + other.__proto__ = ImmutableList.prototype;
|
| + return other;
|
| +}
|
| +// ********** Library dom **************
|
| +// ********** Code for dom_Window **************
|
| +// ********** Code for dom_AbstractWorker **************
|
| +// ********** Code for dom_ArrayBuffer **************
|
| +// ********** Code for dom_ArrayBufferView **************
|
| +// ********** Code for dom_Attr **************
|
| +// ********** Code for dom_AudioBuffer **************
|
| +// ********** Code for dom_AudioBufferSourceNode **************
|
| +// ********** Code for dom_AudioChannelMerger **************
|
| +// ********** Code for dom_AudioChannelSplitter **************
|
| +// ********** Code for dom_AudioContext **************
|
| +// ********** Code for dom_AudioDestinationNode **************
|
| +// ********** Code for dom_AudioGain **************
|
| +// ********** Code for dom_AudioGainNode **************
|
| +// ********** Code for dom_AudioListener **************
|
| +// ********** Code for dom_AudioNode **************
|
| +// ********** Code for dom_AudioPannerNode **************
|
| +// ********** Code for dom_AudioParam **************
|
| +// ********** Code for dom_AudioProcessingEvent **************
|
| +// ********** Code for dom_AudioSourceNode **************
|
| +// ********** Code for dom_BarInfo **************
|
| +// ********** Code for dom_BeforeLoadEvent **************
|
| +// ********** Code for dom_BiquadFilterNode **************
|
| +// ********** Code for dom_Blob **************
|
| +// ********** Code for dom_CDATASection **************
|
| +// ********** Code for dom_CSSCharsetRule **************
|
| +// ********** Code for dom_CSSFontFaceRule **************
|
| +// ********** Code for dom_CSSImportRule **************
|
| +// ********** Code for dom_CSSMediaRule **************
|
| +// ********** Code for dom_CSSPageRule **************
|
| +// ********** Code for dom_CSSPrimitiveValue **************
|
| +// ********** Code for dom_CSSRule **************
|
| +// ********** Code for dom_CSSRuleList **************
|
| +// ********** Code for dom_CSSStyleDeclaration **************
|
| +// ********** Code for dom_CSSStyleRule **************
|
| +// ********** Code for dom_CSSStyleSheet **************
|
| +// ********** Code for dom_CSSUnknownRule **************
|
| +// ********** Code for dom_CSSValue **************
|
| +// ********** Code for dom_CSSValueList **************
|
| +// ********** Code for dom_CanvasGradient **************
|
| +// ********** Code for dom_CanvasPattern **************
|
| +// ********** Code for dom_CanvasPixelArray **************
|
| +// ********** Code for dom_CanvasRenderingContext **************
|
| +// ********** Code for dom_CanvasRenderingContext2D **************
|
| +// ********** Code for dom_CharacterData **************
|
| +// ********** Code for dom_ClientRect **************
|
| +// ********** Code for dom_ClientRectList **************
|
| +// ********** Code for dom_Clipboard **************
|
| +// ********** Code for dom_CloseEvent **************
|
| +// ********** Code for dom_Comment **************
|
| +// ********** Code for dom_CompositionEvent **************
|
| +// ********** Code for Console **************
|
| +Console = (typeof console == 'undefined' ? {} : console);
|
| +// ********** Code for dom_ConvolverNode **************
|
| +// ********** Code for dom_Coordinates **************
|
| +// ********** Code for dom_Counter **************
|
| +// ********** Code for dom_Crypto **************
|
| +// ********** Code for dom_CustomEvent **************
|
| +// ********** Code for dom_DOMApplicationCache **************
|
| +// ********** Code for dom_DOMException **************
|
| +function $dynamic(name) {
|
| + var f = Object.prototype[name];
|
| + if (f && f.methods) return f.methods;
|
| +
|
| + var methods = {};
|
| + if (f) methods.Object = f;
|
| + function $dynamicBind() {
|
| + // Find the target method
|
| + var obj = this;
|
| + var tag = obj.$typeNameOf();
|
| + var method = methods[tag];
|
| + if (!method) {
|
| + var table = $dynamicMetadata;
|
| + for (var i = 0; i < table.length; i++) {
|
| + var entry = table[i];
|
| + if (entry.map.hasOwnProperty(tag)) {
|
| + method = methods[entry.tag];
|
| + if (method) break;
|
| + }
|
| + }
|
| + }
|
| + method = method || methods.Object;
|
| + var proto = Object.getPrototypeOf(obj);
|
| + if (!proto.hasOwnProperty(name)) {
|
| + Object.defineProperty(proto, name,
|
| + { value: method, enumerable: false, writable: true,
|
| + configurable: true });
|
| + }
|
| +
|
| + return method.apply(this, Array.prototype.slice.call(arguments));
|
| + };
|
| + $dynamicBind.methods = methods;
|
| + Object.defineProperty(Object.prototype, name, { value: $dynamicBind,
|
| + enumerable: false, writable: true, configurable: true});
|
| + return methods;
|
| +}
|
| +if (typeof $dynamicMetadata == 'undefined') $dynamicMetadata = [];
|
| +
|
| +function $dynamicSetMetadata(inputTable) {
|
| + // TODO: Deal with light isolates.
|
| + var table = [];
|
| + for (var i = 0; i < inputTable.length; i++) {
|
| + var tag = inputTable[i][0];
|
| + var tags = inputTable[i][1];
|
| + var map = {};
|
| + var tagNames = tags.split('|');
|
| + for (var j = 0; j < tagNames.length; j++) {
|
| + map[tagNames[j]] = true;
|
| + }
|
| + table.push({tag: tag, tags: tags, map: map});
|
| + }
|
| + $dynamicMetadata = table;
|
| +}
|
| +$dynamic("toString$0").DOMException = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_DOMFileSystem **************
|
| +// ********** Code for dom_DOMFileSystemSync **************
|
| +// ********** Code for dom_DOMFormData **************
|
| +// ********** Code for dom_DOMImplementation **************
|
| +// ********** Code for dom_DOMMimeType **************
|
| +// ********** Code for dom_DOMMimeTypeArray **************
|
| +// ********** Code for dom_DOMParser **************
|
| +// ********** Code for dom_DOMPlugin **************
|
| +// ********** Code for dom_DOMPluginArray **************
|
| +// ********** Code for dom_DOMSelection **************
|
| +$dynamic("toString$0").DOMSelection = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_DOMSettableTokenList **************
|
| +// ********** Code for dom_DOMTokenList **************
|
| +$dynamic("add$1").DOMTokenList = function($0) {
|
| + return this.add($0);
|
| +};
|
| +$dynamic("toString$0").DOMTokenList = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_DOMURL **************
|
| +// ********** Code for dom_DOMWindow **************
|
| +// ********** Code for dom_DataTransferItem **************
|
| +// ********** Code for dom_DataTransferItemList **************
|
| +// ********** Code for dom_DataView **************
|
| +// ********** Code for dom_Database **************
|
| +// ********** Code for dom_DatabaseSync **************
|
| +// ********** Code for dom_DedicatedWorkerContext **************
|
| +// ********** Code for dom_DelayNode **************
|
| +// ********** Code for dom_DeviceMotionEvent **************
|
| +// ********** Code for dom_DeviceOrientationEvent **************
|
| +// ********** Code for dom_DirectoryEntry **************
|
| +// ********** Code for dom_DirectoryEntrySync **************
|
| +// ********** Code for dom_DirectoryReader **************
|
| +// ********** Code for dom_DirectoryReaderSync **************
|
| +// ********** Code for dom_Document **************
|
| +// ********** Code for dom_DocumentFragment **************
|
| +// ********** Code for dom_DocumentType **************
|
| +// ********** Code for dom_DynamicsCompressorNode **************
|
| +// ********** Code for dom_Element **************
|
| +// ********** Code for dom_ElementTimeControl **************
|
| +// ********** Code for dom_ElementTraversal **************
|
| +// ********** Code for dom_Entity **************
|
| +// ********** Code for dom_EntityReference **************
|
| +// ********** Code for dom_Entry **************
|
| +// ********** Code for dom_EntryArray **************
|
| +// ********** Code for dom_EntryArraySync **************
|
| +// ********** Code for dom_EntrySync **************
|
| +// ********** Code for dom_ErrorEvent **************
|
| +// ********** Code for dom_Event **************
|
| +// ********** Code for dom_EventException **************
|
| +$dynamic("toString$0").EventException = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_EventSource **************
|
| +// ********** Code for dom_EventTarget **************
|
| +// ********** Code for dom_File **************
|
| +// ********** Code for dom_FileEntry **************
|
| +// ********** Code for dom_FileEntrySync **************
|
| +// ********** Code for dom_FileError **************
|
| +// ********** Code for dom_FileException **************
|
| +$dynamic("toString$0").FileException = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_FileList **************
|
| +// ********** Code for dom_FileReader **************
|
| +// ********** Code for dom_FileReaderSync **************
|
| +// ********** Code for dom_FileWriter **************
|
| +// ********** Code for dom_FileWriterSync **************
|
| +// ********** Code for dom_Float32Array **************
|
| +$dynamic("get$length").Float32Array = function() { return this.length; };
|
| +$dynamic("set$length").Float32Array = function(value) { return this.length = value; };
|
| +// ********** Code for dom_Float64Array **************
|
| +$dynamic("get$length").Float64Array = function() { return this.length; };
|
| +$dynamic("set$length").Float64Array = function(value) { return this.length = value; };
|
| +// ********** Code for dom_Geolocation **************
|
| +// ********** Code for dom_Geoposition **************
|
| +// ********** Code for dom_HTMLAllCollection **************
|
| +// ********** Code for dom_HTMLAnchorElement **************
|
| +$dynamic("toString$0").HTMLAnchorElement = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_HTMLAppletElement **************
|
| +// ********** Code for dom_HTMLAreaElement **************
|
| +// ********** Code for dom_HTMLAudioElement **************
|
| +// ********** Code for dom_HTMLBRElement **************
|
| +// ********** Code for dom_HTMLBaseElement **************
|
| +// ********** Code for dom_HTMLBaseFontElement **************
|
| +// ********** Code for dom_HTMLBodyElement **************
|
| +// ********** Code for dom_HTMLButtonElement **************
|
| +// ********** Code for dom_HTMLCanvasElement **************
|
| +// ********** Code for dom_HTMLCollection **************
|
| +// ********** Code for dom_HTMLDListElement **************
|
| +// ********** Code for dom_HTMLDataListElement **************
|
| +// ********** Code for dom_HTMLDetailsElement **************
|
| +// ********** Code for dom_HTMLDirectoryElement **************
|
| +// ********** Code for dom_HTMLDivElement **************
|
| +// ********** Code for dom_HTMLDocument **************
|
| +// ********** Code for dom_HTMLElement **************
|
| +// ********** Code for dom_HTMLEmbedElement **************
|
| +// ********** Code for dom_HTMLFieldSetElement **************
|
| +// ********** Code for dom_HTMLFontElement **************
|
| +// ********** Code for dom_HTMLFormElement **************
|
| +// ********** Code for dom_HTMLFrameElement **************
|
| +// ********** Code for dom_HTMLFrameSetElement **************
|
| +// ********** Code for dom_HTMLHRElement **************
|
| +// ********** Code for dom_HTMLHeadElement **************
|
| +// ********** Code for dom_HTMLHeadingElement **************
|
| +// ********** Code for dom_HTMLHtmlElement **************
|
| +// ********** Code for dom_HTMLIFrameElement **************
|
| +// ********** Code for dom_HTMLImageElement **************
|
| +// ********** Code for dom_HTMLInputElement **************
|
| +// ********** Code for dom_HTMLIsIndexElement **************
|
| +// ********** Code for dom_HTMLKeygenElement **************
|
| +// ********** Code for dom_HTMLLIElement **************
|
| +// ********** Code for dom_HTMLLabelElement **************
|
| +// ********** Code for dom_HTMLLegendElement **************
|
| +// ********** Code for dom_HTMLLinkElement **************
|
| +// ********** Code for dom_HTMLMapElement **************
|
| +// ********** Code for dom_HTMLMarqueeElement **************
|
| +// ********** Code for dom_HTMLMediaElement **************
|
| +// ********** Code for dom_HTMLMenuElement **************
|
| +// ********** Code for dom_HTMLMetaElement **************
|
| +// ********** Code for dom_HTMLMeterElement **************
|
| +// ********** Code for dom_HTMLModElement **************
|
| +// ********** Code for dom_HTMLOListElement **************
|
| +// ********** Code for dom_HTMLObjectElement **************
|
| +// ********** Code for dom_HTMLOptGroupElement **************
|
| +// ********** Code for dom_HTMLOptionElement **************
|
| +// ********** Code for dom_HTMLOptionsCollection **************
|
| +// ********** Code for dom_HTMLOutputElement **************
|
| +// ********** Code for dom_HTMLParagraphElement **************
|
| +// ********** Code for dom_HTMLParamElement **************
|
| +// ********** Code for dom_HTMLPreElement **************
|
| +// ********** Code for dom_HTMLProgressElement **************
|
| +// ********** Code for dom_HTMLPropertiesCollection **************
|
| +// ********** Code for dom_HTMLQuoteElement **************
|
| +// ********** Code for dom_HTMLScriptElement **************
|
| +// ********** Code for dom_HTMLSelectElement **************
|
| +// ********** Code for dom_HTMLSourceElement **************
|
| +// ********** Code for dom_HTMLSpanElement **************
|
| +// ********** Code for dom_HTMLStyleElement **************
|
| +// ********** Code for dom_HTMLTableCaptionElement **************
|
| +// ********** Code for dom_HTMLTableCellElement **************
|
| +// ********** Code for dom_HTMLTableColElement **************
|
| +// ********** Code for dom_HTMLTableElement **************
|
| +// ********** Code for dom_HTMLTableRowElement **************
|
| +// ********** Code for dom_HTMLTableSectionElement **************
|
| +// ********** Code for dom_HTMLTextAreaElement **************
|
| +// ********** Code for dom_HTMLTitleElement **************
|
| +// ********** Code for dom_HTMLTrackElement **************
|
| +// ********** Code for dom_HTMLUListElement **************
|
| +// ********** Code for dom_HTMLUnknownElement **************
|
| +// ********** Code for dom_HTMLVideoElement **************
|
| +// ********** Code for dom_HashChangeEvent **************
|
| +// ********** Code for dom_HighPass2FilterNode **************
|
| +// ********** Code for dom_History **************
|
| +// ********** Code for dom_IDBAny **************
|
| +// ********** Code for dom_IDBCursor **************
|
| +// ********** Code for dom_IDBCursorWithValue **************
|
| +// ********** Code for dom_IDBDatabase **************
|
| +// ********** Code for dom_IDBDatabaseError **************
|
| +// ********** Code for dom_IDBDatabaseException **************
|
| +$dynamic("toString$0").IDBDatabaseException = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_IDBFactory **************
|
| +// ********** Code for dom_IDBIndex **************
|
| +// ********** Code for dom_IDBKey **************
|
| +// ********** Code for dom_IDBKeyRange **************
|
| +// ********** Code for dom_IDBObjectStore **************
|
| +$dynamic("add$1").IDBObjectStore = function($0) {
|
| + return this.add($0);
|
| +};
|
| +// ********** Code for dom_IDBRequest **************
|
| +// ********** Code for dom_IDBTransaction **************
|
| +// ********** Code for dom_IDBVersionChangeEvent **************
|
| +// ********** Code for dom_IDBVersionChangeRequest **************
|
| +// ********** Code for dom_ImageData **************
|
| +// ********** Code for dom_InjectedScriptHost **************
|
| +// ********** Code for dom_InspectorFrontendHost **************
|
| +// ********** Code for dom_Int16Array **************
|
| +$dynamic("get$length").Int16Array = function() { return this.length; };
|
| +$dynamic("set$length").Int16Array = function(value) { return this.length = value; };
|
| +// ********** Code for dom_Int32Array **************
|
| +$dynamic("get$length").Int32Array = function() { return this.length; };
|
| +$dynamic("set$length").Int32Array = function(value) { return this.length = value; };
|
| +// ********** Code for dom_Int8Array **************
|
| +$dynamic("get$length").Int8Array = function() { return this.length; };
|
| +$dynamic("set$length").Int8Array = function(value) { return this.length = value; };
|
| +// ********** Code for dom_JavaScriptAudioNode **************
|
| +// ********** Code for dom_JavaScriptCallFrame **************
|
| +// ********** Code for dom_KeyboardEvent **************
|
| +// ********** Code for dom_Location **************
|
| +$dynamic("toString$0").Location = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_LowPass2FilterNode **************
|
| +// ********** Code for dom_MediaController **************
|
| +// ********** Code for dom_MediaElementAudioSourceNode **************
|
| +// ********** Code for dom_MediaError **************
|
| +// ********** Code for dom_MediaList **************
|
| +// ********** Code for dom_MediaQueryList **************
|
| +// ********** Code for dom_MediaQueryListListener **************
|
| +// ********** Code for dom_MemoryInfo **************
|
| +// ********** Code for dom_MessageChannel **************
|
| +// ********** Code for dom_MessageEvent **************
|
| +// ********** Code for dom_MessagePort **************
|
| +// ********** Code for dom_Metadata **************
|
| +// ********** Code for dom_MouseEvent **************
|
| +// ********** Code for dom_MutationCallback **************
|
| +// ********** Code for dom_MutationEvent **************
|
| +// ********** Code for dom_MutationRecord **************
|
| +// ********** Code for dom_NamedNodeMap **************
|
| +// ********** Code for dom_Navigator **************
|
| +// ********** Code for dom_Node **************
|
| +// ********** Code for dom_NodeFilter **************
|
| +// ********** Code for dom_NodeIterator **************
|
| +// ********** Code for dom_NodeList **************
|
| +// ********** Code for dom_NodeSelector **************
|
| +// ********** Code for dom_Notation **************
|
| +// ********** Code for dom_Notification **************
|
| +// ********** Code for dom_NotificationCenter **************
|
| +// ********** Code for dom_OESStandardDerivatives **************
|
| +// ********** Code for dom_OESTextureFloat **************
|
| +// ********** Code for dom_OESVertexArrayObject **************
|
| +// ********** Code for dom_OfflineAudioCompletionEvent **************
|
| +// ********** Code for dom_OperationNotAllowedException **************
|
| +$dynamic("toString$0").OperationNotAllowedException = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_OverflowEvent **************
|
| +// ********** Code for dom_PageTransitionEvent **************
|
| +// ********** Code for dom_Performance **************
|
| +// ********** Code for dom_PerformanceNavigation **************
|
| +// ********** Code for dom_PerformanceTiming **************
|
| +// ********** Code for dom_PointerLock **************
|
| +// ********** Code for dom_PopStateEvent **************
|
| +// ********** Code for dom_PositionError **************
|
| +// ********** Code for dom_ProcessingInstruction **************
|
| +// ********** Code for dom_ProgressEvent **************
|
| +// ********** Code for dom_RGBColor **************
|
| +// ********** Code for dom_Range **************
|
| +$dynamic("toString$0").Range = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_RangeException **************
|
| +$dynamic("toString$0").RangeException = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_RealtimeAnalyserNode **************
|
| +// ********** Code for dom_Rect **************
|
| +// ********** Code for dom_SQLError **************
|
| +// ********** Code for dom_SQLException **************
|
| +// ********** Code for dom_SQLResultSet **************
|
| +// ********** Code for dom_SQLResultSetRowList **************
|
| +// ********** Code for dom_SQLTransaction **************
|
| +// ********** Code for dom_SQLTransactionSync **************
|
| +// ********** Code for dom_SVGAElement **************
|
| +// ********** Code for dom_SVGAltGlyphDefElement **************
|
| +// ********** Code for dom_SVGAltGlyphElement **************
|
| +// ********** Code for dom_SVGAltGlyphItemElement **************
|
| +// ********** Code for dom_SVGAngle **************
|
| +// ********** Code for dom_SVGAnimateColorElement **************
|
| +// ********** Code for dom_SVGAnimateElement **************
|
| +// ********** Code for dom_SVGAnimateMotionElement **************
|
| +// ********** Code for dom_SVGAnimateTransformElement **************
|
| +// ********** Code for dom_SVGAnimatedAngle **************
|
| +// ********** Code for dom_SVGAnimatedBoolean **************
|
| +// ********** Code for dom_SVGAnimatedEnumeration **************
|
| +// ********** Code for dom_SVGAnimatedInteger **************
|
| +// ********** Code for dom_SVGAnimatedLength **************
|
| +// ********** Code for dom_SVGAnimatedLengthList **************
|
| +// ********** Code for dom_SVGAnimatedNumber **************
|
| +// ********** Code for dom_SVGAnimatedNumberList **************
|
| +// ********** Code for dom_SVGAnimatedPreserveAspectRatio **************
|
| +// ********** Code for dom_SVGAnimatedRect **************
|
| +// ********** Code for dom_SVGAnimatedString **************
|
| +// ********** Code for dom_SVGAnimatedTransformList **************
|
| +// ********** Code for dom_SVGAnimationElement **************
|
| +// ********** Code for dom_SVGCircleElement **************
|
| +// ********** Code for dom_SVGClipPathElement **************
|
| +// ********** Code for dom_SVGColor **************
|
| +// ********** Code for dom_SVGComponentTransferFunctionElement **************
|
| +// ********** Code for dom_SVGCursorElement **************
|
| +// ********** Code for dom_SVGDefsElement **************
|
| +// ********** Code for dom_SVGDescElement **************
|
| +// ********** Code for dom_SVGDocument **************
|
| +// ********** Code for dom_SVGElement **************
|
| +// ********** Code for dom_SVGElementInstance **************
|
| +// ********** Code for dom_SVGElementInstanceList **************
|
| +// ********** Code for dom_SVGEllipseElement **************
|
| +// ********** Code for dom_SVGException **************
|
| +$dynamic("toString$0").SVGException = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_SVGExternalResourcesRequired **************
|
| +// ********** Code for dom_SVGFEBlendElement **************
|
| +// ********** Code for dom_SVGFEColorMatrixElement **************
|
| +// ********** Code for dom_SVGFEComponentTransferElement **************
|
| +// ********** Code for dom_SVGFECompositeElement **************
|
| +// ********** Code for dom_SVGFEConvolveMatrixElement **************
|
| +// ********** Code for dom_SVGFEDiffuseLightingElement **************
|
| +// ********** Code for dom_SVGFEDisplacementMapElement **************
|
| +// ********** Code for dom_SVGFEDistantLightElement **************
|
| +// ********** Code for dom_SVGFEDropShadowElement **************
|
| +// ********** Code for dom_SVGFEFloodElement **************
|
| +// ********** Code for dom_SVGFEFuncAElement **************
|
| +// ********** Code for dom_SVGFEFuncBElement **************
|
| +// ********** Code for dom_SVGFEFuncGElement **************
|
| +// ********** Code for dom_SVGFEFuncRElement **************
|
| +// ********** Code for dom_SVGFEGaussianBlurElement **************
|
| +// ********** Code for dom_SVGFEImageElement **************
|
| +// ********** Code for dom_SVGFEMergeElement **************
|
| +// ********** Code for dom_SVGFEMergeNodeElement **************
|
| +// ********** Code for dom_SVGFEMorphologyElement **************
|
| +// ********** Code for dom_SVGFEOffsetElement **************
|
| +// ********** Code for dom_SVGFEPointLightElement **************
|
| +// ********** Code for dom_SVGFESpecularLightingElement **************
|
| +// ********** Code for dom_SVGFESpotLightElement **************
|
| +// ********** Code for dom_SVGFETileElement **************
|
| +// ********** Code for dom_SVGFETurbulenceElement **************
|
| +// ********** Code for dom_SVGFilterElement **************
|
| +// ********** Code for dom_SVGFilterPrimitiveStandardAttributes **************
|
| +// ********** Code for dom_SVGFitToViewBox **************
|
| +// ********** Code for dom_SVGFontElement **************
|
| +// ********** Code for dom_SVGFontFaceElement **************
|
| +// ********** Code for dom_SVGFontFaceFormatElement **************
|
| +// ********** Code for dom_SVGFontFaceNameElement **************
|
| +// ********** Code for dom_SVGFontFaceSrcElement **************
|
| +// ********** Code for dom_SVGFontFaceUriElement **************
|
| +// ********** Code for dom_SVGForeignObjectElement **************
|
| +// ********** Code for dom_SVGGElement **************
|
| +// ********** Code for dom_SVGGlyphElement **************
|
| +// ********** Code for dom_SVGGlyphRefElement **************
|
| +// ********** Code for dom_SVGGradientElement **************
|
| +// ********** Code for dom_SVGHKernElement **************
|
| +// ********** Code for dom_SVGImageElement **************
|
| +// ********** Code for dom_SVGLangSpace **************
|
| +// ********** Code for dom_SVGLength **************
|
| +// ********** Code for dom_SVGLengthList **************
|
| +// ********** Code for dom_SVGLineElement **************
|
| +// ********** Code for dom_SVGLinearGradientElement **************
|
| +// ********** Code for dom_SVGLocatable **************
|
| +// ********** Code for dom_SVGMPathElement **************
|
| +// ********** Code for dom_SVGMarkerElement **************
|
| +// ********** Code for dom_SVGMaskElement **************
|
| +// ********** Code for dom_SVGMatrix **************
|
| +// ********** Code for dom_SVGMetadataElement **************
|
| +// ********** Code for dom_SVGMissingGlyphElement **************
|
| +// ********** Code for dom_SVGNumber **************
|
| +// ********** Code for dom_SVGNumberList **************
|
| +// ********** Code for dom_SVGPaint **************
|
| +// ********** Code for dom_SVGPathElement **************
|
| +// ********** Code for dom_SVGPathSeg **************
|
| +// ********** Code for dom_SVGPathSegArcAbs **************
|
| +// ********** Code for dom_SVGPathSegArcRel **************
|
| +// ********** Code for dom_SVGPathSegClosePath **************
|
| +// ********** Code for dom_SVGPathSegCurvetoCubicAbs **************
|
| +// ********** Code for dom_SVGPathSegCurvetoCubicRel **************
|
| +// ********** Code for dom_SVGPathSegCurvetoCubicSmoothAbs **************
|
| +// ********** Code for dom_SVGPathSegCurvetoCubicSmoothRel **************
|
| +// ********** Code for dom_SVGPathSegCurvetoQuadraticAbs **************
|
| +// ********** Code for dom_SVGPathSegCurvetoQuadraticRel **************
|
| +// ********** Code for dom_SVGPathSegCurvetoQuadraticSmoothAbs **************
|
| +// ********** Code for dom_SVGPathSegCurvetoQuadraticSmoothRel **************
|
| +// ********** Code for dom_SVGPathSegLinetoAbs **************
|
| +// ********** Code for dom_SVGPathSegLinetoHorizontalAbs **************
|
| +// ********** Code for dom_SVGPathSegLinetoHorizontalRel **************
|
| +// ********** Code for dom_SVGPathSegLinetoRel **************
|
| +// ********** Code for dom_SVGPathSegLinetoVerticalAbs **************
|
| +// ********** Code for dom_SVGPathSegLinetoVerticalRel **************
|
| +// ********** Code for dom_SVGPathSegList **************
|
| +// ********** Code for dom_SVGPathSegMovetoAbs **************
|
| +// ********** Code for dom_SVGPathSegMovetoRel **************
|
| +// ********** Code for dom_SVGPatternElement **************
|
| +// ********** Code for dom_SVGPoint **************
|
| +// ********** Code for dom_SVGPointList **************
|
| +// ********** Code for dom_SVGPolygonElement **************
|
| +// ********** Code for dom_SVGPolylineElement **************
|
| +// ********** Code for dom_SVGPreserveAspectRatio **************
|
| +// ********** Code for dom_SVGRadialGradientElement **************
|
| +// ********** Code for dom_SVGRect **************
|
| +// ********** Code for dom_SVGRectElement **************
|
| +// ********** Code for dom_SVGRenderingIntent **************
|
| +// ********** Code for dom_SVGSVGElement **************
|
| +// ********** Code for dom_SVGScriptElement **************
|
| +// ********** Code for dom_SVGSetElement **************
|
| +// ********** Code for dom_SVGStopElement **************
|
| +// ********** Code for dom_SVGStringList **************
|
| +// ********** Code for dom_SVGStylable **************
|
| +// ********** Code for dom_SVGStyleElement **************
|
| +// ********** Code for dom_SVGSwitchElement **************
|
| +// ********** Code for dom_SVGSymbolElement **************
|
| +// ********** Code for dom_SVGTRefElement **************
|
| +// ********** Code for dom_SVGTSpanElement **************
|
| +// ********** Code for dom_SVGTests **************
|
| +// ********** Code for dom_SVGTextContentElement **************
|
| +// ********** Code for dom_SVGTextElement **************
|
| +// ********** Code for dom_SVGTextPathElement **************
|
| +// ********** Code for dom_SVGTextPositioningElement **************
|
| +// ********** Code for dom_SVGTitleElement **************
|
| +// ********** Code for dom_SVGTransform **************
|
| +// ********** Code for dom_SVGTransformList **************
|
| +// ********** Code for dom_SVGTransformable **************
|
| +// ********** Code for dom_SVGURIReference **************
|
| +// ********** Code for dom_SVGUnitTypes **************
|
| +// ********** Code for dom_SVGUseElement **************
|
| +// ********** Code for dom_SVGVKernElement **************
|
| +// ********** Code for dom_SVGViewElement **************
|
| +// ********** Code for dom_SVGViewSpec **************
|
| +// ********** Code for dom_SVGZoomAndPan **************
|
| +// ********** Code for dom_SVGZoomEvent **************
|
| +// ********** Code for dom_Screen **************
|
| +// ********** Code for dom_ScriptProfile **************
|
| +// ********** Code for dom_ScriptProfileNode **************
|
| +// ********** Code for dom_SharedWorker **************
|
| +// ********** Code for dom_SharedWorkercontext **************
|
| +// ********** Code for dom_SpeechInputEvent **************
|
| +// ********** Code for dom_SpeechInputResult **************
|
| +// ********** Code for dom_SpeechInputResultList **************
|
| +// ********** Code for dom_Storage **************
|
| +// ********** Code for dom_StorageEvent **************
|
| +// ********** Code for dom_StorageInfo **************
|
| +// ********** Code for dom_StyleMedia **************
|
| +// ********** Code for dom_StyleSheet **************
|
| +// ********** Code for dom_StyleSheetList **************
|
| +// ********** Code for dom_Text **************
|
| +// ********** Code for dom_TextEvent **************
|
| +// ********** Code for dom_TextMetrics **************
|
| +// ********** Code for dom_TextTrack **************
|
| +// ********** Code for dom_TextTrackCue **************
|
| +// ********** Code for dom_TextTrackCueList **************
|
| +// ********** Code for dom_TextTrackList **************
|
| +// ********** Code for dom_TimeRanges **************
|
| +// ********** Code for dom_Touch **************
|
| +// ********** Code for dom_TouchEvent **************
|
| +// ********** Code for dom_TouchList **************
|
| +// ********** Code for dom_TrackEvent **************
|
| +// ********** Code for dom_TreeWalker **************
|
| +// ********** Code for dom_UIEvent **************
|
| +// ********** Code for dom_Uint16Array **************
|
| +$dynamic("get$length").Uint16Array = function() { return this.length; };
|
| +$dynamic("set$length").Uint16Array = function(value) { return this.length = value; };
|
| +// ********** Code for dom_Uint32Array **************
|
| +$dynamic("get$length").Uint32Array = function() { return this.length; };
|
| +$dynamic("set$length").Uint32Array = function(value) { return this.length = value; };
|
| +// ********** Code for dom_Uint8Array **************
|
| +$dynamic("get$length").Uint8Array = function() { return this.length; };
|
| +$dynamic("set$length").Uint8Array = function(value) { return this.length = value; };
|
| +// ********** Code for dom_ValidityState **************
|
| +// ********** Code for dom_WaveShaperNode **************
|
| +// ********** Code for dom_WebGLActiveInfo **************
|
| +// ********** Code for dom_WebGLBuffer **************
|
| +// ********** Code for dom_WebGLCompressedTextures **************
|
| +// ********** Code for dom_WebGLContextAttributes **************
|
| +// ********** Code for dom_WebGLContextEvent **************
|
| +// ********** Code for dom_WebGLDebugRendererInfo **************
|
| +// ********** Code for dom_WebGLDebugShaders **************
|
| +// ********** Code for dom_WebGLFramebuffer **************
|
| +// ********** Code for dom_WebGLLoseContext **************
|
| +// ********** Code for dom_WebGLProgram **************
|
| +// ********** Code for dom_WebGLRenderbuffer **************
|
| +// ********** Code for dom_WebGLRenderingContext **************
|
| +// ********** Code for dom_WebGLShader **************
|
| +// ********** Code for dom_WebGLTexture **************
|
| +// ********** Code for dom_WebGLUniformLocation **************
|
| +// ********** Code for dom_WebGLVertexArrayObjectOES **************
|
| +// ********** Code for dom_WebKitAnimation **************
|
| +// ********** Code for dom_WebKitAnimationEvent **************
|
| +// ********** Code for dom_WebKitAnimationList **************
|
| +// ********** Code for dom_WebKitBlobBuilder **************
|
| +// ********** Code for dom_WebKitCSSFilterValue **************
|
| +// ********** Code for dom_WebKitCSSKeyframeRule **************
|
| +// ********** Code for dom_WebKitCSSKeyframesRule **************
|
| +// ********** Code for dom_WebKitCSSMatrix **************
|
| +$dynamic("toString$0").WebKitCSSMatrix = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_WebKitCSSTransformValue **************
|
| +// ********** Code for dom_WebKitMutationObserver **************
|
| +// ********** Code for dom_WebKitNamedFlow **************
|
| +// ********** Code for dom_WebKitPoint **************
|
| +// ********** Code for dom_WebKitTransitionEvent **************
|
| +// ********** Code for dom_WebSocket **************
|
| +// ********** Code for dom_WheelEvent **************
|
| +// ********** Code for Worker **************
|
| +// ********** Code for dom_WorkerContext **************
|
| +// ********** Code for dom_WorkerLocation **************
|
| +$dynamic("toString$0").WorkerLocation = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_WorkerNavigator **************
|
| +// ********** Code for dom_XMLHttpRequest **************
|
| +// ********** Code for dom_XMLHttpRequestException **************
|
| +$dynamic("toString$0").XMLHttpRequestException = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_XMLHttpRequestProgressEvent **************
|
| +// ********** Code for dom_XMLHttpRequestUpload **************
|
| +// ********** Code for dom_XMLSerializer **************
|
| +// ********** Code for dom_XPathEvaluator **************
|
| +// ********** Code for dom_XPathException **************
|
| +$dynamic("toString$0").XPathException = function() {
|
| + return this.toString();
|
| +};
|
| +// ********** Code for dom_XPathExpression **************
|
| +// ********** Code for dom_XPathNSResolver **************
|
| +// ********** Code for dom_XPathResult **************
|
| +// ********** Code for dom_XSLTProcessor **************
|
| +// ********** Code for _Collections **************
|
| +function _Collections() {}
|
| +// ********** Code for _VariableSizeListIterator_T **************
|
| +$inherits(_VariableSizeListIterator_T, _VariableSizeListIterator);
|
| +function _VariableSizeListIterator_T() {}
|
| +// ********** Code for _FixedSizeListIterator **************
|
| +$inherits(_FixedSizeListIterator, _VariableSizeListIterator_T);
|
| +function _FixedSizeListIterator() {}
|
| +_FixedSizeListIterator.prototype.hasNext = function() {
|
| + return this._dom_length > this._dom_pos;
|
| +}
|
| +_FixedSizeListIterator.prototype.hasNext$0 = _FixedSizeListIterator.prototype.hasNext;
|
| +// ********** Code for _VariableSizeListIterator **************
|
| +function _VariableSizeListIterator() {}
|
| +_VariableSizeListIterator.prototype.hasNext = function() {
|
| + return this._dom_array.get$length() > this._dom_pos;
|
| +}
|
| +_VariableSizeListIterator.prototype.next = function() {
|
| + if (!this.hasNext()) {
|
| + $throw(const$0002);
|
| + }
|
| + return this._dom_array.$index(this._dom_pos++);
|
| +}
|
| +_VariableSizeListIterator.prototype.hasNext$0 = _VariableSizeListIterator.prototype.hasNext;
|
| +_VariableSizeListIterator.prototype.next$0 = _VariableSizeListIterator.prototype.next;
|
| +// ********** Code for _Lists **************
|
| +function _Lists() {}
|
| +// ********** Code for top level **************
|
| +function get$window() {
|
| + return window;
|
| +}
|
| +// ********** Library spirodraw **************
|
| +// ********** Code for Spirodraw **************
|
| +function Spirodraw() {
|
| + var $this = this; // closure support
|
| + this.rad = (0);
|
| + this.animationEnabled = true;
|
| + this.penColor = "red";
|
| + this.doc = get$window().document;
|
| + this.inOrOut = this.doc.getElementById("in_out");
|
| + this.fixedRadiusSlider = this.doc.getElementById("fixed_radius");
|
| + this.wheelRadiusSlider = this.doc.getElementById("wheel_radius");
|
| + this.penRadiusSlider = this.doc.getElementById("pen_radius");
|
| + this.penWidthSlider = this.doc.getElementById("pen_width");
|
| + this.speedSlider = this.doc.getElementById("speed");
|
| + this.numTurns = this.doc.getElementById("num_turns");
|
| + this.mainDiv = this.doc.getElementById("main");
|
| + this.frontCanvas = this.doc.getElementById("canvas");
|
| + this.front = this.frontCanvas.getContext("2d");
|
| + this.backCanvas = this.doc.createElement("canvas");
|
| + this.back = this.backCanvas.getContext("2d");
|
| + this.paletteElement = this.doc.getElementById("palette");
|
| + get$window().addEventListener("resize", $wrap_call$1((function (event) {
|
| + return $this.onResize();
|
| + })
|
| + ), true);
|
| + this.initControlPanel();
|
| +}
|
| +Spirodraw.prototype.go = function() {
|
| + this.onResize();
|
| +}
|
| +Spirodraw.prototype.onResize = function() {
|
| + this.height = get$window().innerHeight;
|
| + this.width = get$window().innerWidth - (270);
|
| + this.yc = $truncdiv(this.height, (2));
|
| + this.xc = $truncdiv(this.width, (2));
|
| + this.frontCanvas.height = this.height;
|
| + this.frontCanvas.width = this.width;
|
| + this.backCanvas.height = this.height;
|
| + this.backCanvas.width = this.width;
|
| + this.clear();
|
| +}
|
| +Spirodraw.prototype.initControlPanel = function() {
|
| + var $this = this; // closure support
|
| + this.inOrOut.addEventListener("change", $wrap_call$1((function (event) {
|
| + return $this.refresh();
|
| + })
|
| + ), true);
|
| + this.fixedRadiusSlider.addEventListener("change", $wrap_call$1((function (event) {
|
| + return $this.refresh();
|
| + })
|
| + ), true);
|
| + this.wheelRadiusSlider.addEventListener("change", $wrap_call$1((function (event) {
|
| + return $this.refresh();
|
| + })
|
| + ), true);
|
| + this.speedSlider.addEventListener("change", $wrap_call$1((function (event) {
|
| + return $this.onSpeedChange();
|
| + })
|
| + ), true);
|
| + this.penRadiusSlider.addEventListener("change", $wrap_call$1((function (event) {
|
| + return $this.refresh();
|
| + })
|
| + ), true);
|
| + this.penWidthSlider.addEventListener("change", $wrap_call$1((function (event) {
|
| + return $this.onPenWidthChange();
|
| + })
|
| + ), true);
|
| + this.colorPicker = new ColorPicker(this.paletteElement);
|
| + this.colorPicker.addListener((function (color) {
|
| + return $this.onColorChange(color);
|
| + })
|
| + );
|
| + this.doc.getElementById("start").addEventListener("click", $wrap_call$1((function (event) {
|
| + return $this.start();
|
| + })
|
| + ), true);
|
| + this.doc.getElementById("stop").addEventListener("click", $wrap_call$1((function (event) {
|
| + return $this.stop();
|
| + })
|
| + ), true);
|
| + this.doc.getElementById("clear").addEventListener("click", $wrap_call$1((function (event) {
|
| + return $this.clear();
|
| + })
|
| + ), true);
|
| + this.doc.getElementById("lucky").addEventListener("click", $wrap_call$1((function (event) {
|
| + return $this.lucky();
|
| + })
|
| + ), true);
|
| +}
|
| +Spirodraw.prototype.onColorChange = function(color) {
|
| + this.penColor = color;
|
| + this.drawFrame(this.rad);
|
| +}
|
| +Spirodraw.prototype.onSpeedChange = function() {
|
| + this.speed = this.speedSlider.valueAsNumber;
|
| + this.stepSize = this.calcStepSize();
|
| +}
|
| +Spirodraw.prototype.onPenWidthChange = function() {
|
| + this.penWidth = this.penWidthSlider.valueAsNumber;
|
| + this.drawFrame(this.rad);
|
| +}
|
| +Spirodraw.prototype.refresh = function() {
|
| + var $0;
|
| + this.stop();
|
| + this.lastX = (this.lastY = ($0 = (0)), $0);
|
| + var min = Math.min(this.height, this.width);
|
| + var pixelsPerUnit = min / (40);
|
| + this.RUnits = this.fixedRadiusSlider.valueAsNumber;
|
| + this.R = this.RUnits * pixelsPerUnit;
|
| + this.rUnits = this.wheelRadiusSlider.valueAsNumber;
|
| + this.r = this.rUnits * this.R / this.RUnits * Math.parseInt(this.inOrOut.value);
|
| + this.dUnits = this.penRadiusSlider.valueAsNumber;
|
| + this.d = this.dUnits * this.R / this.RUnits;
|
| + this.numPoints = this.calcNumPoints();
|
| + this.maxTurns = this.calcTurns();
|
| + this.onSpeedChange();
|
| + this.numTurns.innerText = "0/" + this.maxTurns;
|
| + this.penWidth = this.penWidthSlider.valueAsNumber;
|
| + this.drawFrame((0));
|
| +}
|
| +Spirodraw.prototype.calcNumPoints = function() {
|
| + if ((this.dUnits == (0)) || (this.rUnits == (0))) return (2);
|
| + var gcf_ = gcf(this.RUnits, this.rUnits);
|
| + var n = $truncdiv(this.RUnits, gcf_);
|
| + var d_ = $truncdiv(this.rUnits, gcf_);
|
| + if ($mod(n, (2)) == (1)) return n;
|
| + else if ($mod(d_, (2)) == (1)) return n;
|
| + else return $truncdiv(n, (2));
|
| +}
|
| +Spirodraw.prototype.calcStepSize = function() {
|
| + return this.speed / (100) * this.maxTurns / this.numPoints;
|
| +}
|
| +Spirodraw.prototype.drawFrame = function(theta) {
|
| + if (this.animationEnabled) {
|
| + this.front.clearRect((0), (0), this.width, this.height);
|
| + this.front.drawImage(this.backCanvas, (0), (0));
|
| + this.drawFixed();
|
| + }
|
| + this.drawWheel(theta);
|
| +}
|
| +Spirodraw.prototype.animate = function(time) {
|
| + if (this.run && this.rad <= this.maxTurns * $globals.Spirodraw_PI2) {
|
| + this.rad = this.rad + this.stepSize;
|
| + this.drawFrame(this.rad);
|
| + var nTurns = (this.rad / $globals.Spirodraw_PI2).toInt();
|
| + this.numTurns.innerText = ("" + nTurns + "/" + this.maxTurns);
|
| + get$window().webkitRequestAnimationFrame($wrap_call$1(this.get$animate()), this.frontCanvas);
|
| + }
|
| + else {
|
| + this.stop();
|
| + }
|
| +}
|
| +Spirodraw.prototype.get$animate = function() {
|
| + return this.animate.bind(this);
|
| +}
|
| +Spirodraw.prototype.start = function() {
|
| + this.refresh();
|
| + this.rad = (0);
|
| + this.run = true;
|
| + get$window().webkitRequestAnimationFrame($wrap_call$1(this.get$animate()), this.frontCanvas);
|
| +}
|
| +Spirodraw.prototype.calcTurns = function() {
|
| + if ((this.dUnits == (0)) || (this.rUnits == (0))) return (1);
|
| + var ru = this.rUnits.abs();
|
| + var wrUnits = this.RUnits + this.rUnits;
|
| + var g = gcf(wrUnits, ru);
|
| + return ($truncdiv(ru, g)).toInt();
|
| +}
|
| +Spirodraw.prototype.stop = function() {
|
| + this.run = false;
|
| + this.front.clearRect((0), (0), this.width, this.height);
|
| + this.front.drawImage(this.backCanvas, (0), (0));
|
| + this.rad = (0);
|
| +}
|
| +Spirodraw.prototype.clear = function() {
|
| + this.stop();
|
| + this.back.clearRect((0), (0), this.width, this.height);
|
| + this.refresh();
|
| +}
|
| +Spirodraw.prototype.lucky = function() {
|
| + this.wheelRadiusSlider.valueAsNumber = Math.random() * (9);
|
| + this.penRadiusSlider.valueAsNumber = Math.random() * (9);
|
| + this.penWidthSlider.valueAsNumber = (1) + Math.random() * (9);
|
| + this.colorPicker.set$selectedColor(Math.random() * (215));
|
| + this.start();
|
| +}
|
| +Spirodraw.prototype.drawFixed = function() {
|
| + if (this.animationEnabled) {
|
| + this.front.beginPath();
|
| + this.front.setLineWidth((2));
|
| + this.front.strokeStyle = "gray";
|
| + this.front.arc(this.xc, this.yc, this.R, (0), $globals.Spirodraw_PI2, true);
|
| + this.front.closePath();
|
| + this.front.stroke();
|
| + }
|
| +}
|
| +Spirodraw.prototype.drawWheel = function(theta) {
|
| + var wx = this.xc + ((this.R + this.r) * Math.cos(theta));
|
| + var wy = this.yc - ((this.R + this.r) * Math.sin(theta));
|
| + if (this.animationEnabled) {
|
| + if (this.rUnits > (0)) {
|
| + this.front.beginPath();
|
| + this.front.arc(wx, wy, this.r.abs(), (0), $globals.Spirodraw_PI2, true);
|
| + this.front.closePath();
|
| + this.front.stroke();
|
| + this.front.setLineWidth((1));
|
| + this.front.beginPath();
|
| + this.front.arc(wx, wy, (3), (0), $globals.Spirodraw_PI2, true);
|
| + this.front.fillStyle = "black";
|
| + this.front.fill();
|
| + this.front.closePath();
|
| + this.front.stroke();
|
| + }
|
| + }
|
| + this.drawTip(wx, wy, theta);
|
| +}
|
| +Spirodraw.prototype.drawTip = function(wx, wy, theta) {
|
| + var rot = (this.r == (0)) ? theta : theta * (this.R + this.r) / this.r;
|
| + var tx = wx + this.d * Math.cos(rot);
|
| + var ty = wy - this.d * Math.sin(rot);
|
| + if (this.animationEnabled) {
|
| + this.front.beginPath();
|
| + this.front.fillStyle = this.penColor;
|
| + this.front.arc(tx, ty, this.penWidth / (2) + (2), (0), $globals.Spirodraw_PI2, true);
|
| + this.front.fill();
|
| + this.front.moveTo(wx, wy);
|
| + this.front.strokeStyle = "black";
|
| + this.front.lineTo(tx, ty);
|
| + this.front.closePath();
|
| + this.front.stroke();
|
| + }
|
| + this.drawSegmentTo(tx, ty);
|
| +}
|
| +Spirodraw.prototype.drawSegmentTo = function(tx, ty) {
|
| + if (this.lastX > (0)) {
|
| + this.back.beginPath();
|
| + this.back.strokeStyle = this.penColor;
|
| + this.back.setLineWidth(this.penWidth);
|
| + this.back.moveTo(this.lastX, this.lastY);
|
| + this.back.lineTo(tx, ty);
|
| + this.back.closePath();
|
| + this.back.stroke();
|
| + }
|
| + this.lastX = tx;
|
| + this.lastY = ty;
|
| +}
|
| +// ********** Code for ColorPicker **************
|
| +function ColorPicker(canvasElement) {
|
| + this.canvasElement = canvasElement;
|
| + this.height = (160);
|
| + this._selectedColor = "red";
|
| + this.width = (180);
|
| + this._listeners = [];
|
| + this.ctx = this.canvasElement.getContext("2d");
|
| + this.drawPalette();
|
| + this.addHandlers();
|
| + this.showSelected();
|
| +}
|
| +ColorPicker.prototype.set$selectedColor = function(i) {
|
| + this._selectedColor = this.getHexString(i.floor().toInt());
|
| + this.showSelected();
|
| + this.fireSelected();
|
| +}
|
| +ColorPicker.prototype.onMouseMove = function(event) {
|
| + var x = event.offsetX;
|
| + var y = event.offsetY - (40);
|
| + if ((y < (0)) || (x >= this.width)) {
|
| + return;
|
| + }
|
| + this.ctx.fillStyle = this.getHexString(this.getColorIndex(x, y));
|
| + this.ctx.fillRect((0), (0), this.width / (2), (30));
|
| +}
|
| +ColorPicker.prototype.onMouseDown = function(event) {
|
| + var elt = event.target;
|
| + event.cancelBubble = true;
|
| + var x = event.offsetX;
|
| + var y = event.offsetY - (40);
|
| + if ((y < (0)) || (x >= this.width)) return;
|
| + this.set$selectedColor(this.getColorIndex(x, y));
|
| +}
|
| +ColorPicker.prototype.addListener = function(listener) {
|
| + this._listeners.add(listener);
|
| +}
|
| +ColorPicker.prototype.addHandlers = function() {
|
| + var $this = this; // closure support
|
| + this.canvasElement.addEventListener("mousemove", $wrap_call$1((function (e) {
|
| + return $this.onMouseMove(e);
|
| + })
|
| + ), true);
|
| + this.canvasElement.addEventListener("mousedown", $wrap_call$1((function (e) {
|
| + return $this.onMouseDown(e);
|
| + })
|
| + ), true);
|
| +}
|
| +ColorPicker.prototype.drawPalette = function() {
|
| + var i = (0);
|
| + for (var r = (0);
|
| + r < (256); r += (51)) {
|
| + for (var g = (0);
|
| + g < (256); g += (51)) {
|
| + for (var b = (0);
|
| + b < (256); b += (51)) {
|
| + var color = this.getHexString(i);
|
| + this.ctx.fillStyle = color;
|
| + var x = (10) * ($mod(i, (18)));
|
| + var y = (10) * ($truncdiv(i, (18))) + (40);
|
| + this.ctx.fillRect(x + (1), y + (1), (8), (8));
|
| + i++;
|
| + }
|
| + }
|
| + }
|
| +}
|
| +ColorPicker.prototype.fireSelected = function() {
|
| + var $$list = this._listeners;
|
| + for (var $$i = 0;$$i < $$list.get$length(); $$i++) {
|
| + var listener = $$list.$index($$i);
|
| + listener.call$1(this._selectedColor);
|
| + }
|
| +}
|
| +ColorPicker.prototype.getColorIndex = function(x, y) {
|
| + var i = $truncdiv(y, (10)) * (18) + $truncdiv(x, (10));
|
| + return i;
|
| +}
|
| +ColorPicker.prototype.showSelected = function() {
|
| + this.ctx.fillStyle = this._selectedColor;
|
| + this.ctx.fillRect(this.width / (2), (0), this.width / (2), (30));
|
| + this.ctx.fillStyle = "white";
|
| + this.ctx.fillRect((0), (0), this.width / (2), (30));
|
| +}
|
| +ColorPicker.prototype.getHexString = function(i) {
|
| + var r = $truncdiv(i, (36));
|
| + var g = $truncdiv(($mod(i, (36))), (6));
|
| + var b = $mod(i, (6));
|
| + return ("#" + const$0003.$index(r) + const$0003.$index(g) + const$0003.$index(b));
|
| +}
|
| +// ********** Code for top level **************
|
| +function main() {
|
| + new Spirodraw().go();
|
| +}
|
| +function gcf(n, d) {
|
| + if (n == d) return n;
|
| + var max = Math.max(n, d);
|
| + for (var i = $truncdiv(max, (2));
|
| + i > (1); i--) if (($mod(n, i) == (0)) && ($mod(d, i) == (0))) return i;
|
| + return (1);
|
| +}
|
| +// 25 dynamic types.
|
| +// 26 types
|
| +// 1 !leaf
|
| +(function(){
|
| + var table = [
|
| + // [dynamic-dispatch-tag, tags of classes implementing dynamic-dispatch-tag]
|
| + ['DOMTokenList', 'DOMTokenList|DOMSettableTokenList'],
|
| + ];
|
| + $dynamicSetMetadata(table);
|
| +})();
|
| +// ********** Globals **************
|
| +function $static_init(){
|
| + $globals.Spirodraw_PI2 = (6.283185307179586);
|
| +}
|
| +var const$0001 = Object.create(IllegalAccessException.prototype, {});
|
| +var const$0002 = Object.create(NoMoreElementsException.prototype, {});
|
| +var const$0003 = ImmutableList.ImmutableList$from$factory(["00", "33", "66", "99", "CC", "FF"]);
|
| +var $globals = {};
|
| +$static_init();
|
| +main();
|
|
|