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(); |