@qooxdoo/framework 7.0.0-beta.5 → 7.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1562) hide show
  1. package/CHANGELOG.md +3 -6
  2. package/Manifest.json +1 -1
  3. package/README.md +9 -3
  4. package/lib/compiler/compile-info.json +50 -48
  5. package/lib/compiler/index.js +6948 -4175
  6. package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -1
  7. package/lib/resource/qx/tool/loadsass.js +16 -13
  8. package/lib/resource/qx/tool/schema/compile-1-0-0.json +13 -13
  9. package/lib/resource/qx/tool/website/build/assets/bluebird.min.js +4593 -9
  10. package/lib/resource/qx/tool/website/build/assets/buttons.js +391 -1
  11. package/lib/resource/qx/tool/website/build/assets/fontawesome-all.js +8963 -1
  12. package/lib/resource/qx/tool/website/build/assets/jquery.js +5452 -3
  13. package/lib/resource/qx/tool/website/build/diagnostics/dependson.js +31 -31
  14. package/lib/resource/qx/tool/website/build/diagnostics/requiredby.js +32 -36
  15. package/lib/resource/qx/tool/website/build/scripts/serve.js +87 -66
  16. package/lib/resource/qx/tool/website/src/assets/bluebird.min.js +4593 -9
  17. package/lib/resource/qx/tool/website/src/assets/buttons.js +391 -1
  18. package/lib/resource/qx/tool/website/src/assets/fontawesome-all.js +8963 -1
  19. package/lib/resource/qx/tool/website/src/assets/jquery.js +5452 -3
  20. package/lib/resource/qx/tool/website/src/diagnostics/dependson.js +31 -31
  21. package/lib/resource/qx/tool/website/src/diagnostics/requiredby.js +32 -36
  22. package/lib/resource/qx/tool/website/src/scripts/serve.js +87 -66
  23. package/npm-shrinkwrap.json +7293 -0
  24. package/package.json +19 -4
  25. package/source/class/q.js +4 -2
  26. package/source/class/qx/Annotation.js +48 -57
  27. package/source/class/qx/Bootstrap.js +206 -207
  28. package/source/class/qx/Class.js +602 -504
  29. package/source/class/qx/Interface.js +169 -137
  30. package/source/class/qx/Mixin.js +156 -120
  31. package/source/class/qx/Part.js +48 -77
  32. package/source/class/qx/Promise.js +5891 -4655
  33. package/source/class/qx/Theme.js +200 -134
  34. package/source/class/qx/__init__.js +8 -8
  35. package/source/class/qx/application/AbstractGui.js +20 -32
  36. package/source/class/qx/application/Basic.js +9 -18
  37. package/source/class/qx/application/IApplication.js +6 -10
  38. package/source/class/qx/application/Inline.js +4 -7
  39. package/source/class/qx/application/Mobile.js +22 -45
  40. package/source/class/qx/application/Native.js +8 -19
  41. package/source/class/qx/application/Routing.js +88 -114
  42. package/source/class/qx/application/Standalone.js +4 -9
  43. package/source/class/qx/application/__init__.js +1 -1
  44. package/source/class/qx/bom/AnimationFrame.js +26 -25
  45. package/source/class/qx/bom/Blocker.js +92 -100
  46. package/source/class/qx/bom/Cookie.js +18 -22
  47. package/source/class/qx/bom/Document.js +24 -31
  48. package/source/class/qx/bom/Element.js +65 -51
  49. package/source/class/qx/bom/Event.js +68 -78
  50. package/source/class/qx/bom/FileReader.js +110 -115
  51. package/source/class/qx/bom/Font.js +82 -122
  52. package/source/class/qx/bom/FullScreen.js +32 -41
  53. package/source/class/qx/bom/GeoLocation.js +39 -44
  54. package/source/class/qx/bom/HashHistory.js +58 -64
  55. package/source/class/qx/bom/History.js +61 -89
  56. package/source/class/qx/bom/Html.js +75 -71
  57. package/source/class/qx/bom/IdleCallback.js +20 -23
  58. package/source/class/qx/bom/Iframe.js +37 -69
  59. package/source/class/qx/bom/IframeHistory.js +83 -88
  60. package/source/class/qx/bom/Input.js +50 -66
  61. package/source/class/qx/bom/Label.js +65 -86
  62. package/source/class/qx/bom/Lifecycle.js +7 -9
  63. package/source/class/qx/bom/MediaQuery.js +324 -307
  64. package/source/class/qx/bom/NativeHistory.js +51 -46
  65. package/source/class/qx/bom/Notification.js +41 -47
  66. package/source/class/qx/bom/PageVisibility.js +19 -25
  67. package/source/class/qx/bom/Range.js +20 -30
  68. package/source/class/qx/bom/Selection.js +163 -172
  69. package/source/class/qx/bom/Selector.js +2401 -2181
  70. package/source/class/qx/bom/Shortcut.js +103 -129
  71. package/source/class/qx/bom/Storage.js +9 -8
  72. package/source/class/qx/bom/String.js +285 -290
  73. package/source/class/qx/bom/Style.js +30 -31
  74. package/source/class/qx/bom/Stylesheet.js +36 -60
  75. package/source/class/qx/bom/Template.js +730 -657
  76. package/source/class/qx/bom/Viewport.js +40 -46
  77. package/source/class/qx/bom/Vml.js +43 -28
  78. package/source/class/qx/bom/WebWorker.js +61 -50
  79. package/source/class/qx/bom/Window.js +88 -105
  80. package/source/class/qx/bom/__init__.js +11 -11
  81. package/source/class/qx/bom/client/Browser.js +45 -47
  82. package/source/class/qx/bom/client/Css.js +85 -85
  83. package/source/class/qx/bom/client/CssAnimation.js +41 -49
  84. package/source/class/qx/bom/client/CssTransform.js +21 -29
  85. package/source/class/qx/bom/client/CssTransition.js +9 -12
  86. package/source/class/qx/bom/client/Device.js +45 -45
  87. package/source/class/qx/bom/client/EcmaScript.js +153 -96
  88. package/source/class/qx/bom/client/Engine.js +38 -35
  89. package/source/class/qx/bom/client/Event.js +75 -63
  90. package/source/class/qx/bom/client/Html.js +97 -97
  91. package/source/class/qx/bom/client/Idle.js +4 -6
  92. package/source/class/qx/bom/client/Locale.js +15 -15
  93. package/source/class/qx/bom/client/OperatingSystem.js +89 -106
  94. package/source/class/qx/bom/client/Pdfjs.js +1364 -1067
  95. package/source/class/qx/bom/client/PhoneGap.js +6 -9
  96. package/source/class/qx/bom/client/Plugin.js +93 -97
  97. package/source/class/qx/bom/client/Runtime.js +14 -12
  98. package/source/class/qx/bom/client/Scroll.js +20 -16
  99. package/source/class/qx/bom/client/Stylesheet.js +44 -32
  100. package/source/class/qx/bom/client/Transport.js +38 -41
  101. package/source/class/qx/bom/client/Xml.js +39 -41
  102. package/source/class/qx/bom/client/__init__.js +4 -4
  103. package/source/class/qx/bom/element/Animation.js +15 -12
  104. package/source/class/qx/bom/element/AnimationCss.js +95 -64
  105. package/source/class/qx/bom/element/AnimationHandle.js +22 -29
  106. package/source/class/qx/bom/element/AnimationJs.js +94 -71
  107. package/source/class/qx/bom/element/Attribute.js +119 -134
  108. package/source/class/qx/bom/element/Background.js +35 -35
  109. package/source/class/qx/bom/element/BoxSizing.js +43 -44
  110. package/source/class/qx/bom/element/Class.js +50 -72
  111. package/source/class/qx/bom/element/Clip.js +36 -60
  112. package/source/class/qx/bom/element/Cursor.js +13 -20
  113. package/source/class/qx/bom/element/Dataset.js +33 -31
  114. package/source/class/qx/bom/element/Decoration.js +178 -168
  115. package/source/class/qx/bom/element/Dimension.js +78 -60
  116. package/source/class/qx/bom/element/Location.js +87 -94
  117. package/source/class/qx/bom/element/Opacity.js +42 -44
  118. package/source/class/qx/bom/element/Scroll.js +78 -88
  119. package/source/class/qx/bom/element/Style.js +61 -101
  120. package/source/class/qx/bom/element/Transform.js +38 -56
  121. package/source/class/qx/bom/element/__init__.js +4 -4
  122. package/source/class/qx/bom/media/Abstract.js +136 -143
  123. package/source/class/qx/bom/media/Audio.js +7 -12
  124. package/source/class/qx/bom/media/Video.js +15 -27
  125. package/source/class/qx/bom/request/IRequest.js +18 -21
  126. package/source/class/qx/bom/request/Jsonp.js +34 -39
  127. package/source/class/qx/bom/request/Script.js +94 -90
  128. package/source/class/qx/bom/request/SimpleXhr.js +111 -79
  129. package/source/class/qx/bom/request/Xhr.js +196 -143
  130. package/source/class/qx/bom/request/__init__.js +1 -1
  131. package/source/class/qx/bom/rest/Resource.js +269 -203
  132. package/source/class/qx/bom/storage/Memory.js +18 -29
  133. package/source/class/qx/bom/storage/UserData.js +28 -35
  134. package/source/class/qx/bom/storage/Web.js +19 -30
  135. package/source/class/qx/bom/webfonts/Manager.js +199 -130
  136. package/source/class/qx/bom/webfonts/Validator.js +84 -118
  137. package/source/class/qx/bom/webfonts/WebFont.js +24 -28
  138. package/source/class/qx/bom/webfonts/__init__.js +1 -1
  139. package/source/class/qx/core/Aspect.js +15 -22
  140. package/source/class/qx/core/Assert.js +391 -333
  141. package/source/class/qx/core/AssertionError.js +6 -15
  142. package/source/class/qx/core/BaseInit.js +25 -28
  143. package/source/class/qx/core/Environment.js +72 -86
  144. package/source/class/qx/core/GlobalError.js +12 -20
  145. package/source/class/qx/core/IDisposable.js +6 -9
  146. package/source/class/qx/core/Id.js +25 -15
  147. package/source/class/qx/core/Init.js +20 -20
  148. package/source/class/qx/core/MAssert.js +54 -97
  149. package/source/class/qx/core/MBindTo.js +10 -14
  150. package/source/class/qx/core/MEvent.js +76 -65
  151. package/source/class/qx/core/MLogging.js +9 -18
  152. package/source/class/qx/core/MObjectId.js +104 -65
  153. package/source/class/qx/core/MProperty.js +18 -34
  154. package/source/class/qx/core/Object.js +93 -122
  155. package/source/class/qx/core/ObjectRegistry.js +58 -81
  156. package/source/class/qx/core/Property.js +974 -780
  157. package/source/class/qx/core/ValidationError.js +3 -4
  158. package/source/class/qx/core/WindowError.js +13 -24
  159. package/source/class/qx/core/Wrapper.js +8 -9
  160. package/source/class/qx/data/Array.js +178 -191
  161. package/source/class/qx/data/Conversion.js +11 -18
  162. package/source/class/qx/data/IListData.js +11 -20
  163. package/source/class/qx/data/MBinding.js +31 -26
  164. package/source/class/qx/data/SingleValueBinding.js +491 -225
  165. package/source/class/qx/data/__init__.js +1 -1
  166. package/source/class/qx/data/controller/CheckedList.js +82 -54
  167. package/source/class/qx/data/controller/Form.js +81 -69
  168. package/source/class/qx/data/controller/IControllerDelegate.js +7 -12
  169. package/source/class/qx/data/controller/ISelection.js +6 -10
  170. package/source/class/qx/data/controller/List.js +151 -167
  171. package/source/class/qx/data/controller/MSelection.js +53 -72
  172. package/source/class/qx/data/controller/Object.js +106 -77
  173. package/source/class/qx/data/controller/Tree.js +164 -142
  174. package/source/class/qx/data/controller/__init__.js +1 -1
  175. package/source/class/qx/data/controller/website/List.js +34 -43
  176. package/source/class/qx/data/controller/website/__init__.js +2 -2
  177. package/source/class/qx/data/marshal/IMarshaler.js +4 -7
  178. package/source/class/qx/data/marshal/IMarshalerDelegate.js +10 -18
  179. package/source/class/qx/data/marshal/Json.js +112 -85
  180. package/source/class/qx/data/marshal/MEventBubbling.js +44 -42
  181. package/source/class/qx/data/marshal/__init__.js +1 -1
  182. package/source/class/qx/data/store/IStoreDelegate.js +6 -9
  183. package/source/class/qx/data/store/Json.js +71 -85
  184. package/source/class/qx/data/store/Jsonp.js +19 -25
  185. package/source/class/qx/data/store/Offline.js +21 -29
  186. package/source/class/qx/data/store/Rest.js +25 -23
  187. package/source/class/qx/data/store/__init__.js +1 -1
  188. package/source/class/qx/dev/Debug.js +105 -124
  189. package/source/class/qx/dev/FakeServer.js +68 -65
  190. package/source/class/qx/dev/ObjectSummary.js +33 -39
  191. package/source/class/qx/dev/Profile.js +62 -63
  192. package/source/class/qx/dev/StackTrace.js +64 -70
  193. package/source/class/qx/dev/Tokenizer.js +114 -126
  194. package/source/class/qx/dev/unit/AbstractTestSuite.js +17 -31
  195. package/source/class/qx/dev/unit/AsyncWrapper.js +22 -26
  196. package/source/class/qx/dev/unit/JsUnitTestResult.js +9 -21
  197. package/source/class/qx/dev/unit/MMeasure.js +46 -37
  198. package/source/class/qx/dev/unit/MMock.js +236 -240
  199. package/source/class/qx/dev/unit/MRequirements.js +53 -79
  200. package/source/class/qx/dev/unit/MRequirementsBasic.js +24 -19
  201. package/source/class/qx/dev/unit/MTestLoader.js +52 -57
  202. package/source/class/qx/dev/unit/MeasurementResult.js +18 -22
  203. package/source/class/qx/dev/unit/RequirementError.js +8 -17
  204. package/source/class/qx/dev/unit/Sinon.js +18826 -4613
  205. package/source/class/qx/dev/unit/TestCase.js +40 -51
  206. package/source/class/qx/dev/unit/TestClass.js +22 -23
  207. package/source/class/qx/dev/unit/TestFunction.js +28 -48
  208. package/source/class/qx/dev/unit/TestLoader.js +11 -14
  209. package/source/class/qx/dev/unit/TestLoaderBasic.js +3 -6
  210. package/source/class/qx/dev/unit/TestLoaderInline.js +8 -14
  211. package/source/class/qx/dev/unit/TestLoaderMobile.js +8 -14
  212. package/source/class/qx/dev/unit/TestLoaderNative.js +7 -13
  213. package/source/class/qx/dev/unit/TestResult.js +140 -118
  214. package/source/class/qx/dev/unit/TestSuite.js +46 -55
  215. package/source/class/qx/dom/Element.js +29 -74
  216. package/source/class/qx/dom/Hierarchy.js +60 -95
  217. package/source/class/qx/dom/Node.js +54 -81
  218. package/source/class/qx/dom/__init__.js +9 -9
  219. package/source/class/qx/event/AcceleratingTimer.js +28 -46
  220. package/source/class/qx/event/Emitter.js +54 -49
  221. package/source/class/qx/event/GlobalError.js +22 -38
  222. package/source/class/qx/event/IEventDispatcher.js +4 -9
  223. package/source/class/qx/event/IEventHandler.js +7 -13
  224. package/source/class/qx/event/Idle.js +32 -47
  225. package/source/class/qx/event/Manager.js +222 -237
  226. package/source/class/qx/event/Messaging.js +55 -48
  227. package/source/class/qx/event/Pool.js +5 -8
  228. package/source/class/qx/event/Registration.js +128 -118
  229. package/source/class/qx/event/Timer.js +50 -96
  230. package/source/class/qx/event/Utils.js +41 -28
  231. package/source/class/qx/event/dispatch/AbstractBubbling.js +133 -93
  232. package/source/class/qx/event/dispatch/Direct.js +46 -51
  233. package/source/class/qx/event/dispatch/DomBubbling.js +8 -15
  234. package/source/class/qx/event/dispatch/MouseCapture.js +74 -91
  235. package/source/class/qx/event/handler/Appear.js +40 -77
  236. package/source/class/qx/event/handler/Application.js +100 -126
  237. package/source/class/qx/event/handler/Capture.js +15 -37
  238. package/source/class/qx/event/handler/DragDrop.js +342 -228
  239. package/source/class/qx/event/handler/Element.js +45 -72
  240. package/source/class/qx/event/handler/ElementResize.js +35 -70
  241. package/source/class/qx/event/handler/Focus.js +908 -637
  242. package/source/class/qx/event/handler/Gesture.js +144 -93
  243. package/source/class/qx/event/handler/GestureCore.js +214 -163
  244. package/source/class/qx/event/handler/Iframe.js +21 -35
  245. package/source/class/qx/event/handler/Input.js +332 -209
  246. package/source/class/qx/event/handler/Keyboard.js +325 -270
  247. package/source/class/qx/event/handler/Mouse.js +212 -173
  248. package/source/class/qx/event/handler/Object.js +13 -31
  249. package/source/class/qx/event/handler/Offline.js +52 -67
  250. package/source/class/qx/event/handler/Orientation.js +56 -62
  251. package/source/class/qx/event/handler/OrientationCore.js +33 -43
  252. package/source/class/qx/event/handler/Pointer.js +84 -72
  253. package/source/class/qx/event/handler/PointerCore.js +183 -105
  254. package/source/class/qx/event/handler/Touch.js +43 -59
  255. package/source/class/qx/event/handler/TouchCore.js +159 -120
  256. package/source/class/qx/event/handler/Transition.js +91 -100
  257. package/source/class/qx/event/handler/UserAction.js +18 -42
  258. package/source/class/qx/event/handler/Video.js +12 -12
  259. package/source/class/qx/event/handler/Window.js +53 -69
  260. package/source/class/qx/event/message/Bus.js +109 -128
  261. package/source/class/qx/event/message/Message.js +14 -29
  262. package/source/class/qx/event/type/Data.js +11 -22
  263. package/source/class/qx/event/type/Dom.js +37 -52
  264. package/source/class/qx/event/type/Drag.js +37 -56
  265. package/source/class/qx/event/type/Event.js +80 -104
  266. package/source/class/qx/event/type/Focus.js +5 -8
  267. package/source/class/qx/event/type/GeoPosition.js +32 -41
  268. package/source/class/qx/event/type/KeyInput.js +9 -19
  269. package/source/class/qx/event/type/KeySequence.js +10 -21
  270. package/source/class/qx/event/type/Mouse.js +69 -72
  271. package/source/class/qx/event/type/MouseWheel.js +5 -9
  272. package/source/class/qx/event/type/Native.js +16 -27
  273. package/source/class/qx/event/type/Orientation.js +18 -30
  274. package/source/class/qx/event/type/Pinch.js +21 -27
  275. package/source/class/qx/event/type/Pointer.js +38 -41
  276. package/source/class/qx/event/type/Rest.js +7 -10
  277. package/source/class/qx/event/type/Roll.js +49 -58
  278. package/source/class/qx/event/type/Rotate.js +21 -27
  279. package/source/class/qx/event/type/Swipe.js +75 -86
  280. package/source/class/qx/event/type/Tap.js +2 -4
  281. package/source/class/qx/event/type/Touch.js +262 -286
  282. package/source/class/qx/event/type/Track.js +23 -28
  283. package/source/class/qx/event/type/dom/Custom.js +24 -20
  284. package/source/class/qx/event/type/dom/Pointer.js +86 -60
  285. package/source/class/qx/event/util/Keyboard.js +94 -106
  286. package/source/class/qx/html/Blocker.js +17 -18
  287. package/source/class/qx/html/Canvas.js +13 -29
  288. package/source/class/qx/html/Element.js +372 -497
  289. package/source/class/qx/html/Factory.js +31 -26
  290. package/source/class/qx/html/Iframe.js +35 -69
  291. package/source/class/qx/html/Image.js +43 -55
  292. package/source/class/qx/html/Input.js +44 -57
  293. package/source/class/qx/html/Jsx.js +49 -41
  294. package/source/class/qx/html/JsxRef.js +3 -5
  295. package/source/class/qx/html/Label.js +20 -32
  296. package/source/class/qx/html/Node.js +362 -422
  297. package/source/class/qx/html/Root.js +7 -16
  298. package/source/class/qx/html/Text.js +34 -27
  299. package/source/class/qx/io/ImageLoader.js +66 -90
  300. package/source/class/qx/io/PartLoader.js +17 -30
  301. package/source/class/qx/io/__init__.js +5 -3
  302. package/source/class/qx/io/exception/Cancel.js +33 -0
  303. package/source/class/qx/io/exception/Exception.js +37 -0
  304. package/source/class/qx/io/exception/Protocol.js +25 -0
  305. package/source/class/qx/io/exception/Transport.js +38 -0
  306. package/source/class/qx/io/exception/__init__.js +4 -0
  307. package/source/class/qx/io/graphql/Client.js +122 -0
  308. package/source/class/qx/io/graphql/__init__.js +9 -0
  309. package/source/class/qx/io/graphql/protocol/Message.js +65 -0
  310. package/source/class/qx/io/graphql/protocol/Request.js +93 -0
  311. package/source/class/qx/io/graphql/protocol/Response.js +63 -0
  312. package/source/class/qx/io/graphql/protocol/__init__.js +6 -0
  313. package/source/class/qx/io/jsonrpc/Client.js +355 -0
  314. package/source/class/qx/io/jsonrpc/__init__.js +15 -0
  315. package/source/class/qx/io/jsonrpc/protocol/Batch.js +103 -0
  316. package/source/class/qx/io/jsonrpc/protocol/Error.js +65 -0
  317. package/source/class/qx/io/jsonrpc/protocol/Message.js +48 -0
  318. package/source/class/qx/io/jsonrpc/protocol/Notification.js +47 -0
  319. package/source/class/qx/io/jsonrpc/protocol/Parser.js +105 -0
  320. package/source/class/qx/io/jsonrpc/protocol/Request.js +94 -0
  321. package/source/class/qx/io/jsonrpc/protocol/Result.js +49 -0
  322. package/source/class/qx/io/jsonrpc/protocol/__init__.js +5 -0
  323. package/source/class/qx/io/part/ClosurePart.js +16 -35
  324. package/source/class/qx/io/part/Package.js +35 -63
  325. package/source/class/qx/io/part/Part.js +29 -53
  326. package/source/class/qx/io/part/__init__.js +4 -4
  327. package/source/class/qx/io/request/AbstractRequest.js +268 -201
  328. package/source/class/qx/io/request/Jsonp.js +16 -19
  329. package/source/class/qx/io/request/Xhr.js +38 -37
  330. package/source/class/qx/io/request/__init__.js +1 -1
  331. package/source/class/qx/io/request/authentication/Basic.js +7 -13
  332. package/source/class/qx/io/request/authentication/Bearer.js +46 -0
  333. package/source/class/qx/io/request/authentication/IAuthentication.js +3 -6
  334. package/source/class/qx/io/request/authentication/__init__.js +1 -1
  335. package/source/class/qx/io/rest/Resource.js +122 -90
  336. package/source/class/qx/io/transport/AbstractClient.js +121 -0
  337. package/source/class/qx/io/transport/AbstractTransport.js +40 -0
  338. package/source/class/qx/io/transport/Fetch.js +98 -0
  339. package/source/class/qx/io/transport/ITransport.js +42 -0
  340. package/source/class/qx/io/transport/PostMessage.js +54 -0
  341. package/source/class/qx/io/transport/Websocket.js +97 -0
  342. package/source/class/qx/io/transport/Xhr.js +138 -0
  343. package/source/class/qx/io/transport/__init__.js +18 -0
  344. package/source/class/qx/lang/Array.js +133 -170
  345. package/source/class/qx/lang/Function.js +101 -104
  346. package/source/class/qx/lang/Json.js +1041 -774
  347. package/source/class/qx/lang/Number.js +11 -16
  348. package/source/class/qx/lang/Object.js +129 -100
  349. package/source/class/qx/lang/String.js +86 -94
  350. package/source/class/qx/lang/Type.js +44 -65
  351. package/source/class/qx/lang/normalize/Array.js +39 -49
  352. package/source/class/qx/lang/normalize/Date.js +50 -32
  353. package/source/class/qx/lang/normalize/Error.js +4 -7
  354. package/source/class/qx/lang/normalize/Function.js +11 -19
  355. package/source/class/qx/lang/normalize/Number.js +3 -5
  356. package/source/class/qx/lang/normalize/Object.js +17 -18
  357. package/source/class/qx/lang/normalize/String.js +39 -40
  358. package/source/class/qx/locale/Date.js +175 -178
  359. package/source/class/qx/locale/Key.js +13 -11
  360. package/source/class/qx/locale/LocalizedString.js +18 -15
  361. package/source/class/qx/locale/MTranslation.js +22 -23
  362. package/source/class/qx/locale/Manager.js +62 -100
  363. package/source/class/qx/locale/Number.js +20 -12
  364. package/source/class/qx/locale/String.js +26 -15
  365. package/source/class/qx/log/Logger.js +128 -180
  366. package/source/class/qx/log/__init__.js +3 -3
  367. package/source/class/qx/log/appender/Console.js +100 -111
  368. package/source/class/qx/log/appender/Element.js +25 -39
  369. package/source/class/qx/log/appender/Formatter.js +117 -66
  370. package/source/class/qx/log/appender/Native.js +4 -10
  371. package/source/class/qx/log/appender/NodeConsole.js +20 -28
  372. package/source/class/qx/log/appender/PhoneGap.js +5 -13
  373. package/source/class/qx/log/appender/RhinoConsole.js +12 -23
  374. package/source/class/qx/log/appender/RhinoFile.js +19 -26
  375. package/source/class/qx/log/appender/RingBuffer.js +10 -19
  376. package/source/class/qx/log/appender/Util.js +11 -9
  377. package/source/class/qx/module/Animation.js +73 -63
  378. package/source/class/qx/module/Attribute.js +27 -46
  379. package/source/class/qx/module/Blocker.js +33 -41
  380. package/source/class/qx/module/Cookie.js +6 -10
  381. package/source/class/qx/module/Css.js +82 -97
  382. package/source/class/qx/module/Dataset.js +12 -24
  383. package/source/class/qx/module/Environment.js +4 -6
  384. package/source/class/qx/module/Event.js +124 -127
  385. package/source/class/qx/module/Io.js +5 -9
  386. package/source/class/qx/module/Manipulating.js +98 -117
  387. package/source/class/qx/module/MatchMedia.js +50 -24
  388. package/source/class/qx/module/Messaging.js +6 -10
  389. package/source/class/qx/module/Placeholder.js +54 -44
  390. package/source/class/qx/module/Placement.js +33 -33
  391. package/source/class/qx/module/Rest.js +3 -4
  392. package/source/class/qx/module/Storage.js +34 -48
  393. package/source/class/qx/module/Template.js +6 -9
  394. package/source/class/qx/module/TextSelection.js +13 -21
  395. package/source/class/qx/module/Transform.js +28 -45
  396. package/source/class/qx/module/Traversing.js +160 -154
  397. package/source/class/qx/module/__init__.js +1 -1
  398. package/source/class/qx/module/dev/FakeServer.js +19 -25
  399. package/source/class/qx/module/event/GestureHandler.js +25 -13
  400. package/source/class/qx/module/event/Keyboard.js +42 -31
  401. package/source/class/qx/module/event/Mouse.js +48 -46
  402. package/source/class/qx/module/event/Native.js +18 -30
  403. package/source/class/qx/module/event/Orientation.js +11 -18
  404. package/source/class/qx/module/event/OrientationHandler.js +19 -17
  405. package/source/class/qx/module/event/Pinch.js +13 -14
  406. package/source/class/qx/module/event/Pointer.js +22 -22
  407. package/source/class/qx/module/event/PointerHandler.js +14 -11
  408. package/source/class/qx/module/event/Rotate.js +13 -14
  409. package/source/class/qx/module/event/Swipe.js +18 -24
  410. package/source/class/qx/module/event/Tap.js +25 -25
  411. package/source/class/qx/module/event/Touch.js +4 -7
  412. package/source/class/qx/module/event/TouchHandler.js +16 -16
  413. package/source/class/qx/module/event/Track.js +13 -14
  414. package/source/class/qx/module/util/Array.js +30 -41
  415. package/source/class/qx/module/util/Function.js +1 -2
  416. package/source/class/qx/module/util/Object.js +8 -11
  417. package/source/class/qx/module/util/String.js +10 -18
  418. package/source/class/qx/module/util/Type.js +3 -4
  419. package/source/class/qx/test/Annotation.js +195 -89
  420. package/source/class/qx/test/Bootstrap.js +98 -124
  421. package/source/class/qx/test/Browser.js +8 -11
  422. package/source/class/qx/test/Class.js +164 -198
  423. package/source/class/qx/test/Dom.js +10 -28
  424. package/source/class/qx/test/EditDistance.js +16 -16
  425. package/source/class/qx/test/Interface.js +380 -383
  426. package/source/class/qx/test/MAppearance.js +10 -14
  427. package/source/class/qx/test/MDecoration.js +1 -3
  428. package/source/class/qx/test/Mixin.js +418 -173
  429. package/source/class/qx/test/Promise.js +422 -333
  430. package/source/class/qx/test/Theme.js +204 -179
  431. package/source/class/qx/test/Xml.js +155 -84
  432. package/source/class/qx/test/application/Routing.js +45 -44
  433. package/source/class/qx/test/bom/AnimationFrame.js +23 -21
  434. package/source/class/qx/test/bom/Attribute.js +66 -47
  435. package/source/class/qx/test/bom/Basic.js +52 -27
  436. package/source/class/qx/test/bom/Blocker.js +100 -70
  437. package/source/class/qx/test/bom/Class.js +19 -34
  438. package/source/class/qx/test/bom/Cookie.js +49 -28
  439. package/source/class/qx/test/bom/Dataset.js +12 -24
  440. package/source/class/qx/test/bom/Element.js +55 -47
  441. package/source/class/qx/test/bom/Event.js +68 -45
  442. package/source/class/qx/test/bom/FileReader.js +6 -12
  443. package/source/class/qx/test/bom/Font.js +256 -118
  444. package/source/class/qx/test/bom/GeoLocation.js +82 -64
  445. package/source/class/qx/test/bom/History.js +63 -84
  446. package/source/class/qx/test/bom/IdleCallback.js +51 -38
  447. package/source/class/qx/test/bom/Iframe.js +14 -18
  448. package/source/class/qx/test/bom/Label.js +74 -105
  449. package/source/class/qx/test/bom/Location.js +70 -99
  450. package/source/class/qx/test/bom/PageVisibility.js +13 -16
  451. package/source/class/qx/test/bom/Selector.js +16 -16
  452. package/source/class/qx/test/bom/String.js +19 -15
  453. package/source/class/qx/test/bom/Stylesheet.js +39 -48
  454. package/source/class/qx/test/bom/Template.js +49 -57
  455. package/source/class/qx/test/bom/Viewport.js +7 -11
  456. package/source/class/qx/test/bom/WebWorker.js +49 -37
  457. package/source/class/qx/test/bom/Window.js +6 -12
  458. package/source/class/qx/test/bom/client/Css.js +26 -19
  459. package/source/class/qx/test/bom/client/Device.js +29 -18
  460. package/source/class/qx/test/bom/client/OperatingSystem.js +17 -20
  461. package/source/class/qx/test/bom/client/Pdfjs.js +15 -13
  462. package/source/class/qx/test/bom/element/AnimationHandle.js +20 -17
  463. package/source/class/qx/test/bom/element/AnimationJs.js +48 -31
  464. package/source/class/qx/test/bom/element/Background.js +93 -46
  465. package/source/class/qx/test/bom/element/BoxSizing.js +66 -61
  466. package/source/class/qx/test/bom/element/Class.js +33 -58
  467. package/source/class/qx/test/bom/element/Dimension.js +58 -37
  468. package/source/class/qx/test/bom/element/Style.js +87 -83
  469. package/source/class/qx/test/bom/element/Transform.js +209 -86
  470. package/source/class/qx/test/bom/media/Audio.js +18 -14
  471. package/source/class/qx/test/bom/media/MediaTestCase.js +61 -66
  472. package/source/class/qx/test/bom/media/Video.js +39 -28
  473. package/source/class/qx/test/bom/request/Jsonp.js +60 -57
  474. package/source/class/qx/test/bom/request/Script.js +150 -138
  475. package/source/class/qx/test/bom/request/SimpleXhr.js +206 -134
  476. package/source/class/qx/test/bom/request/Xhr.js +179 -132
  477. package/source/class/qx/test/bom/request/XhrWithRemote.js +206 -160
  478. package/source/class/qx/test/bom/rest/Resource.js +345 -281
  479. package/source/class/qx/test/bom/rest/ResourceWithRemote.js +74 -57
  480. package/source/class/qx/test/bom/storage/Local.js +3 -4
  481. package/source/class/qx/test/bom/storage/Session.js +3 -4
  482. package/source/class/qx/test/bom/storage/WebStorageTestCase.js +28 -27
  483. package/source/class/qx/test/bom/webfonts/Abstract.js +8 -10
  484. package/source/class/qx/test/bom/webfonts/Manager.js +127 -80
  485. package/source/class/qx/test/bom/webfonts/Validator.js +36 -30
  486. package/source/class/qx/test/compiler/ClassFile.js +29 -11
  487. package/source/class/qx/test/compiler/jsdoc/Parser.js +122 -96
  488. package/source/class/qx/test/core/Assert.js +151 -86
  489. package/source/class/qx/test/core/Environment.js +162 -123
  490. package/source/class/qx/test/core/EventEmitterDummy.js +7 -8
  491. package/source/class/qx/test/core/InheritanceDummy.js +23 -33
  492. package/source/class/qx/test/core/MemoryManagement.js +13 -5
  493. package/source/class/qx/test/core/Object.js +106 -112
  494. package/source/class/qx/test/core/ObjectId.js +7 -6
  495. package/source/class/qx/test/core/Property.js +483 -387
  496. package/source/class/qx/test/core/PropertyHelper.js +49 -64
  497. package/source/class/qx/test/core/Target.js +9 -13
  498. package/source/class/qx/test/core/Validation.js +409 -136
  499. package/source/class/qx/test/data/DataArray.js +1059 -394
  500. package/source/class/qx/test/data/DataArrayWithChangeBubble.js +315 -172
  501. package/source/class/qx/test/data/__init__.js +4 -4
  502. package/source/class/qx/test/data/controller/Form.js +141 -99
  503. package/source/class/qx/test/data/controller/FormWithArrayAndModel.js +66 -51
  504. package/source/class/qx/test/data/controller/List.js +644 -336
  505. package/source/class/qx/test/data/controller/ListReverse.js +64 -63
  506. package/source/class/qx/test/data/controller/ListWithObjects.js +305 -149
  507. package/source/class/qx/test/data/controller/Object.js +252 -94
  508. package/source/class/qx/test/data/controller/Tree.js +1219 -383
  509. package/source/class/qx/test/data/controller/__init__.js +4 -4
  510. package/source/class/qx/test/data/marshal/Json.js +832 -447
  511. package/source/class/qx/test/data/marshal/__init__.js +4 -4
  512. package/source/class/qx/test/data/singlevalue/Array.js +383 -144
  513. package/source/class/qx/test/data/singlevalue/Deep.js +361 -175
  514. package/source/class/qx/test/data/singlevalue/Resolve.js +51 -29
  515. package/source/class/qx/test/data/singlevalue/Simple.js +530 -208
  516. package/source/class/qx/test/data/singlevalue/TextFieldDummy.js +32 -28
  517. package/source/class/qx/test/data/singlevalue/__init__.js +4 -4
  518. package/source/class/qx/test/data/store/Json.js +574 -313
  519. package/source/class/qx/test/data/store/Jsonp.js +103 -77
  520. package/source/class/qx/test/data/store/Offline.js +127 -110
  521. package/source/class/qx/test/data/store/Rest.js +58 -52
  522. package/source/class/qx/test/data/store/RestWithRemote.js +36 -30
  523. package/source/class/qx/test/data/store/__init__.js +4 -4
  524. package/source/class/qx/test/dev/Debug.js +9 -13
  525. package/source/class/qx/test/dev/StackTrace.js +51 -42
  526. package/source/class/qx/test/dev/unit/Requirements.js +36 -49
  527. package/source/class/qx/test/dev/unit/Sinon.js +85 -73
  528. package/source/class/qx/test/dev/unit/TestCase.js +12 -17
  529. package/source/class/qx/test/dom/Element.js +17 -12
  530. package/source/class/qx/test/dom/Hierarchy.js +53 -38
  531. package/source/class/qx/test/dom/Node.js +97 -43
  532. package/source/class/qx/test/event/Bubbling.js +258 -88
  533. package/source/class/qx/test/event/Emitter.js +38 -39
  534. package/source/class/qx/test/event/GlobalError.js +59 -87
  535. package/source/class/qx/test/event/GlobalEventMonitors.js +22 -25
  536. package/source/class/qx/test/event/Messaging.js +66 -49
  537. package/source/class/qx/test/event/MockBubblingHandler.js +10 -15
  538. package/source/class/qx/test/event/MockHandler.js +14 -33
  539. package/source/class/qx/test/event/Registration.js +38 -32
  540. package/source/class/qx/test/event/Timer.js +61 -39
  541. package/source/class/qx/test/event/Utils.js +164 -123
  542. package/source/class/qx/test/event/dispatch/MouseCapture.js +61 -51
  543. package/source/class/qx/test/event/dispatch/MouseEventOnDocument.js +22 -23
  544. package/source/class/qx/test/event/dispatch/TestingHandler.js +8 -10
  545. package/source/class/qx/test/event/dispatch/TestingWindow.js +9 -13
  546. package/source/class/qx/test/event/dispatch/__init__.js +4 -4
  547. package/source/class/qx/test/event/handler/Offline.js +7 -8
  548. package/source/class/qx/test/event/message/Bus.js +112 -72
  549. package/source/class/qx/test/event/message/__init__.js +4 -4
  550. package/source/class/qx/test/event/type/Dom.js +12 -11
  551. package/source/class/qx/test/event/type/Event.js +7 -16
  552. package/source/class/qx/test/event/type/Mouse.js +12 -11
  553. package/source/class/qx/test/event/type/Native.js +12 -11
  554. package/source/class/qx/test/event/type/__init__.js +4 -4
  555. package/source/class/qx/test/event/util/Keyboard.js +4 -3
  556. package/source/class/qx/test/html/Element.js +538 -239
  557. package/source/class/qx/test/html/Iframe.js +85 -73
  558. package/source/class/qx/test/html/jsx/TestJsx.js +15 -4
  559. package/source/class/qx/test/html/jsx/TestJsxBrowser.js +37 -19
  560. package/source/class/qx/test/html/jsx/TestWidget.js +26 -26
  561. package/source/class/qx/test/io/ImageLoader.js +256 -160
  562. package/source/class/qx/test/io/MAssert.js +46 -0
  563. package/source/class/qx/test/io/MRemoteTest.js +9 -11
  564. package/source/class/qx/test/io/__init__.js +4 -4
  565. package/source/class/qx/test/io/graphql/Client.js +190 -0
  566. package/source/class/qx/test/io/graphql/ClientFetch.js +34 -0
  567. package/source/class/qx/test/io/graphql/Request.js +41 -0
  568. package/source/class/qx/test/io/jsonrpc/Client.js +333 -0
  569. package/source/class/qx/test/io/jsonrpc/Protocol.js +108 -0
  570. package/source/class/qx/test/io/request/Jsonp.js +23 -20
  571. package/source/class/qx/test/io/request/JsonpWithRemote.js +25 -22
  572. package/source/class/qx/test/io/request/MRequest.js +137 -114
  573. package/source/class/qx/test/io/request/Xhr.js +367 -209
  574. package/source/class/qx/test/io/request/XhrWithRemote.js +133 -100
  575. package/source/class/qx/test/io/rest/Resource.js +325 -270
  576. package/source/class/qx/test/io/rest/ResourceWithRemote.js +75 -58
  577. package/source/class/qx/test/io/transport/PostMessage.js +56 -0
  578. package/source/class/qx/test/io/transport/Websocket.js +64 -0
  579. package/source/class/qx/test/lang/Array.js +79 -105
  580. package/source/class/qx/test/lang/Function.js +64 -53
  581. package/source/class/qx/test/lang/Json.js +51 -79
  582. package/source/class/qx/test/lang/Number.js +4 -6
  583. package/source/class/qx/test/lang/Object.js +143 -133
  584. package/source/class/qx/test/lang/String.js +151 -95
  585. package/source/class/qx/test/lang/Type.js +34 -44
  586. package/source/class/qx/test/lang/Webkit.js +8 -13
  587. package/source/class/qx/test/lang/normalize/Array.js +121 -68
  588. package/source/class/qx/test/lang/normalize/Date.js +232 -49
  589. package/source/class/qx/test/lang/normalize/Error.js +5 -8
  590. package/source/class/qx/test/lang/normalize/Function.js +7 -13
  591. package/source/class/qx/test/lang/normalize/Object.js +22 -29
  592. package/source/class/qx/test/lang/normalize/String.js +19 -28
  593. package/source/class/qx/test/locale/Date.js +91 -43
  594. package/source/class/qx/test/locale/Locale.js +52 -32
  595. package/source/class/qx/test/locale/LocalizedString.js +12 -12
  596. package/source/class/qx/test/log/DeprecationMethodOverriding.js +52 -31
  597. package/source/class/qx/test/log/Filters.js +6 -3
  598. package/source/class/qx/test/log/Formatter.js +13 -7
  599. package/source/class/qx/test/log/Logger.js +19 -29
  600. package/source/class/qx/test/log/RingBuffer.js +14 -25
  601. package/source/class/qx/test/log/__init__.js +4 -4
  602. package/source/class/qx/test/log/fixture/ClassA.js +22 -22
  603. package/source/class/qx/test/log/fixture/ClassB1.js +7 -9
  604. package/source/class/qx/test/log/fixture/ClassB2.js +5 -7
  605. package/source/class/qx/test/log/fixture/ClassC1.js +5 -7
  606. package/source/class/qx/test/log/fixture/ClassC2.js +7 -9
  607. package/source/class/qx/test/mobile/LocaleSwitch.js +29 -36
  608. package/source/class/qx/test/mobile/MobileTestCase.js +39 -49
  609. package/source/class/qx/test/mobile/basic/Atom.js +129 -53
  610. package/source/class/qx/test/mobile/basic/Image.js +41 -31
  611. package/source/class/qx/test/mobile/basic/Label.js +6 -10
  612. package/source/class/qx/test/mobile/container/Carousel.js +41 -45
  613. package/source/class/qx/test/mobile/container/Composite.js +48 -65
  614. package/source/class/qx/test/mobile/container/Drawer.js +42 -29
  615. package/source/class/qx/test/mobile/container/Navigation.js +14 -20
  616. package/source/class/qx/test/mobile/container/Scroll.js +23 -19
  617. package/source/class/qx/test/mobile/core/Widget.js +150 -86
  618. package/source/class/qx/test/mobile/dialog/Menu.js +47 -26
  619. package/source/class/qx/test/mobile/dialog/Popup.js +30 -19
  620. package/source/class/qx/test/mobile/embed/Html.js +5 -8
  621. package/source/class/qx/test/mobile/form/Button.js +15 -13
  622. package/source/class/qx/test/mobile/form/CheckBox.js +21 -17
  623. package/source/class/qx/test/mobile/form/Form.js +37 -24
  624. package/source/class/qx/test/mobile/form/Group.js +5 -9
  625. package/source/class/qx/test/mobile/form/Label.js +11 -13
  626. package/source/class/qx/test/mobile/form/NumberField.js +49 -45
  627. package/source/class/qx/test/mobile/form/RadioButton.js +30 -19
  628. package/source/class/qx/test/mobile/form/SelectBox.js +39 -25
  629. package/source/class/qx/test/mobile/form/SingleRenderer.js +31 -27
  630. package/source/class/qx/test/mobile/form/Slider.js +55 -35
  631. package/source/class/qx/test/mobile/form/TextArea.js +34 -24
  632. package/source/class/qx/test/mobile/form/TextField.js +34 -24
  633. package/source/class/qx/test/mobile/form/ToggleButton.js +10 -14
  634. package/source/class/qx/test/mobile/layout/Card.js +21 -17
  635. package/source/class/qx/test/mobile/layout/HBox.js +25 -20
  636. package/source/class/qx/test/mobile/layout/VBox.js +25 -21
  637. package/source/class/qx/test/mobile/list/List.js +114 -83
  638. package/source/class/qx/test/mobile/navigationbar/NavigationBar.js +5 -9
  639. package/source/class/qx/test/mobile/page/Manager.js +7 -13
  640. package/source/class/qx/test/mobile/page/NavigationPage.js +7 -17
  641. package/source/class/qx/test/mobile/page/Page.js +101 -68
  642. package/source/class/qx/test/mobile/tabbar/TabBar.js +11 -21
  643. package/source/class/qx/test/mobile/toolbar/Toolbar.js +16 -16
  644. package/source/class/qx/test/performance/BaseCall.js +31 -36
  645. package/source/class/qx/test/performance/Event.js +60 -53
  646. package/source/class/qx/test/performance/Object.js +16 -22
  647. package/source/class/qx/test/performance/Property.js +20 -22
  648. package/source/class/qx/test/performance/data/Marshaling.js +25 -30
  649. package/source/class/qx/test/performance/decorator/AbstractDecorator.js +22 -34
  650. package/source/class/qx/test/performance/decorator/Background.js +4 -6
  651. package/source/class/qx/test/performance/decorator/BackgroundScale.js +6 -8
  652. package/source/class/qx/test/performance/decorator/Single.js +4 -6
  653. package/source/class/qx/test/performance/element/Element.js +50 -67
  654. package/source/class/qx/test/performance/widget/AbstractWidget.js +31 -44
  655. package/source/class/qx/test/performance/widget/Button.js +5 -7
  656. package/source/class/qx/test/performance/widget/Label.js +5 -7
  657. package/source/class/qx/test/performance/widget/RichLabel.js +6 -8
  658. package/source/class/qx/test/performance/widget/Widget.js +5 -7
  659. package/source/class/qx/test/performance/widget/WidgetWithDecorator.js +7 -9
  660. package/source/class/qx/test/performance/widget/WidgetWithSingle.js +9 -11
  661. package/source/class/qx/test/renderer/Color.js +22 -49
  662. package/source/class/qx/test/testclasses/BaseClassBoth.js +11 -8
  663. package/source/class/qx/test/testclasses/BaseClassIncluded.js +5 -6
  664. package/source/class/qx/test/testclasses/BaseClassPatched.js +15 -8
  665. package/source/class/qx/test/testclasses/DerivedClassBoth.js +7 -7
  666. package/source/class/qx/test/testclasses/DerivedClassIncluded.js +7 -7
  667. package/source/class/qx/test/testclasses/DerivedClassPatched.js +7 -7
  668. package/source/class/qx/test/testclasses/MMixinOne.js +4 -4
  669. package/source/class/qx/test/testclasses/MMixinTwo.js +2 -2
  670. package/source/class/qx/test/testclasses/RootClass.js +8 -8
  671. package/source/class/qx/test/theme/__init__.js +4 -4
  672. package/source/class/qx/test/theme/manager/Color.js +52 -66
  673. package/source/class/qx/test/theme/manager/Decoration.js +177 -154
  674. package/source/class/qx/test/theme/manager/Font.js +68 -39
  675. package/source/class/qx/test/theme/manager/Icon.js +46 -43
  676. package/source/class/qx/test/theme/manager/Meta.js +121 -110
  677. package/source/class/qx/test/theme/manager/__init__.js +4 -4
  678. package/source/class/qx/test/theme/manager/mock/Appearance.js +17 -23
  679. package/source/class/qx/test/theme/manager/mock/Color.js +7 -9
  680. package/source/class/qx/test/theme/manager/mock/Decoration.js +7 -10
  681. package/source/class/qx/test/theme/manager/mock/Font.js +6 -10
  682. package/source/class/qx/test/theme/simple/Appearance.js +268 -210
  683. package/source/class/qx/test/tool/utils/Utils.js +10 -8
  684. package/source/class/qx/test/toolchain/PrivateOptimization.js +20 -13
  685. package/source/class/qx/test/toolchain/TestRunner.js +12 -12
  686. package/source/class/qx/test/toolchain/VariantOptimization.js +37 -26
  687. package/source/class/qx/test/toolchain/__init__.js +4 -4
  688. package/source/class/qx/test/type/Array.js +8 -12
  689. package/source/class/qx/test/type/BaseArray.js +58 -78
  690. package/source/class/qx/test/type/BaseString.js +27 -65
  691. package/source/class/qx/test/type/__init__.js +4 -4
  692. package/source/class/qx/test/ui/BackgroundColor.js +20 -21
  693. package/source/class/qx/test/ui/ChildrenHandling.js +136 -81
  694. package/source/class/qx/test/ui/Destroy.js +310 -248
  695. package/source/class/qx/test/ui/Focus.js +40 -87
  696. package/source/class/qx/test/ui/Insets.js +14 -18
  697. package/source/class/qx/test/ui/LayoutTestCase.js +99 -92
  698. package/source/class/qx/test/ui/LocaleSwitch.js +37 -41
  699. package/source/class/qx/test/ui/RadioItems.js +11 -22
  700. package/source/class/qx/test/ui/Widget.js +13 -17
  701. package/source/class/qx/test/ui/Window.js +26 -39
  702. package/source/class/qx/test/ui/basic/Atom.js +37 -25
  703. package/source/class/qx/test/ui/basic/Image.js +179 -138
  704. package/source/class/qx/test/ui/basic/Label.js +147 -65
  705. package/source/class/qx/test/ui/basic/__init__.js +4 -4
  706. package/source/class/qx/test/ui/command/Command.js +105 -69
  707. package/source/class/qx/test/ui/command/Group.js +24 -21
  708. package/source/class/qx/test/ui/command/GroupManager.js +7 -12
  709. package/source/class/qx/test/ui/container/Stack.js +26 -36
  710. package/source/class/qx/test/ui/core/AbstractScrollArea.js +84 -67
  711. package/source/class/qx/test/ui/core/Appearance.js +53 -54
  712. package/source/class/qx/test/ui/core/Blocker.js +80 -44
  713. package/source/class/qx/test/ui/core/DragDropScrolling.js +69 -55
  714. package/source/class/qx/test/ui/core/Placement.js +22 -34
  715. package/source/class/qx/test/ui/core/Queues.js +28 -39
  716. package/source/class/qx/test/ui/core/SizeHint.js +32 -76
  717. package/source/class/qx/test/ui/core/SizeHintX.js +8 -15
  718. package/source/class/qx/test/ui/core/SizeHintY.js +8 -15
  719. package/source/class/qx/test/ui/core/Spacer.js +11 -18
  720. package/source/class/qx/test/ui/core/Widget.js +117 -112
  721. package/source/class/qx/test/ui/core/__init__.js +4 -4
  722. package/source/class/qx/test/ui/decoration/LinearGradient.js +18 -14
  723. package/source/class/qx/test/ui/embed/Iframe.js +70 -66
  724. package/source/class/qx/test/ui/embed/__init__.js +4 -4
  725. package/source/class/qx/test/ui/form/AbstractSelectBox.js +11 -16
  726. package/source/class/qx/test/ui/form/AbstractVirtualBox.js +12 -19
  727. package/source/class/qx/test/ui/form/BooleanFormat.js +40 -25
  728. package/source/class/qx/test/ui/form/Color.js +29 -19
  729. package/source/class/qx/test/ui/form/ComboBox.js +39 -25
  730. package/source/class/qx/test/ui/form/Date.js +34 -21
  731. package/source/class/qx/test/ui/form/DateField.js +16 -19
  732. package/source/class/qx/test/ui/form/Executable.js +98 -68
  733. package/source/class/qx/test/ui/form/Field.js +65 -54
  734. package/source/class/qx/test/ui/form/Form.js +211 -123
  735. package/source/class/qx/test/ui/form/FormManager.js +72 -100
  736. package/source/class/qx/test/ui/form/FormValidator.js +549 -399
  737. package/source/class/qx/test/ui/form/Label.js +87 -65
  738. package/source/class/qx/test/ui/form/List.js +19 -19
  739. package/source/class/qx/test/ui/form/MenuButton.js +26 -20
  740. package/source/class/qx/test/ui/form/ModelProperty.js +40 -36
  741. package/source/class/qx/test/ui/form/ModelSelection.js +39 -84
  742. package/source/class/qx/test/ui/form/NumberFormat.js +30 -19
  743. package/source/class/qx/test/ui/form/Placeholder.js +147 -87
  744. package/source/class/qx/test/ui/form/RadioButtonGroup.js +31 -26
  745. package/source/class/qx/test/ui/form/RadioGroup.js +58 -54
  746. package/source/class/qx/test/ui/form/Range.js +63 -28
  747. package/source/class/qx/test/ui/form/Renderer.js +39 -33
  748. package/source/class/qx/test/ui/form/Resetter.js +21 -35
  749. package/source/class/qx/test/ui/form/Slider.js +37 -21
  750. package/source/class/qx/test/ui/form/Spinner.js +9 -5
  751. package/source/class/qx/test/ui/form/SplitButton.js +7 -11
  752. package/source/class/qx/test/ui/form/StringFormat.js +60 -30
  753. package/source/class/qx/test/ui/form/TextArea.js +59 -41
  754. package/source/class/qx/test/ui/form/TextField.js +14 -16
  755. package/source/class/qx/test/ui/form/ToggleButton.js +20 -24
  756. package/source/class/qx/test/ui/form/VirtualSelectBox.js +66 -40
  757. package/source/class/qx/test/ui/form/__init__.js +4 -4
  758. package/source/class/qx/test/ui/form/virtual/VirtualComboBox.js +58 -60
  759. package/source/class/qx/test/ui/form/virtual/VirtualDropDownList.js +120 -110
  760. package/source/class/qx/test/ui/form/virtual/VirtualSelectBox.js +43 -27
  761. package/source/class/qx/test/ui/groupbox/CheckGroupBox.js +13 -18
  762. package/source/class/qx/test/ui/indicator/ProgressBar.js +73 -48
  763. package/source/class/qx/test/ui/layout/Box.js +23 -22
  764. package/source/class/qx/test/ui/layout/Flow.js +233 -153
  765. package/source/class/qx/test/ui/layout/Grid.js +88 -101
  766. package/source/class/qx/test/ui/layout/LayoutItem.js +57 -83
  767. package/source/class/qx/test/ui/layout/LayoutRoot.js +7 -11
  768. package/source/class/qx/test/ui/layout/Util.js +30 -31
  769. package/source/class/qx/test/ui/layout/__init__.js +4 -4
  770. package/source/class/qx/test/ui/list/AbstractListTest.js +13 -21
  771. package/source/class/qx/test/ui/list/Group.js +191 -114
  772. package/source/class/qx/test/ui/list/List.js +189 -132
  773. package/source/class/qx/test/ui/list/MAssert.js +14 -9
  774. package/source/class/qx/test/ui/list/ObjectGroup.js +131 -109
  775. package/source/class/qx/test/ui/list/core/MultiSelection.js +58 -44
  776. package/source/class/qx/test/ui/list/core/SingleSelection.js +43 -43
  777. package/source/class/qx/test/ui/list/fixture/GroupMock.js +6 -9
  778. package/source/class/qx/test/ui/list/fixture/ItemMock.js +9 -13
  779. package/source/class/qx/test/ui/root/Inline.js +22 -20
  780. package/source/class/qx/test/ui/selection/AbstractMultiSelectonTest.js +188 -105
  781. package/source/class/qx/test/ui/selection/AbstractSingleSelectonTest.js +173 -125
  782. package/source/class/qx/test/ui/selection/ListMultiSelection.js +19 -21
  783. package/source/class/qx/test/ui/selection/ListSingleSelection.js +19 -21
  784. package/source/class/qx/test/ui/selection/RadioGroup.js +41 -29
  785. package/source/class/qx/test/ui/selection/SelectBox.js +11 -17
  786. package/source/class/qx/test/ui/selection/Stack.js +22 -27
  787. package/source/class/qx/test/ui/selection/TabView.js +35 -26
  788. package/source/class/qx/test/ui/selection/TreeMultiSelection.js +14 -19
  789. package/source/class/qx/test/ui/selection/TreeSingleSelection.js +20 -24
  790. package/source/class/qx/test/ui/selection/__init__.js +4 -4
  791. package/source/class/qx/test/ui/table/Dispose.js +46 -46
  792. package/source/class/qx/test/ui/table/Table.js +74 -69
  793. package/source/class/qx/test/ui/table/__init__.js +4 -4
  794. package/source/class/qx/test/ui/table/celleditor/AbstractField.js +14 -28
  795. package/source/class/qx/test/ui/table/celleditor/ComboBox.js +11 -18
  796. package/source/class/qx/test/ui/table/celleditor/PasswordField.js +6 -10
  797. package/source/class/qx/test/ui/table/celleditor/SelectBox.js +16 -32
  798. package/source/class/qx/test/ui/table/celleditor/TextField.js +6 -9
  799. package/source/class/qx/test/ui/table/celleditor/__init__.js +4 -4
  800. package/source/class/qx/test/ui/table/columnmodel/Basic.js +130 -129
  801. package/source/class/qx/test/ui/table/model/Filtered.js +51 -36
  802. package/source/class/qx/test/ui/table/model/Simple.js +43 -45
  803. package/source/class/qx/test/ui/table/selection/Model.js +70 -22
  804. package/source/class/qx/test/ui/toolbar/OverflowHandling.js +145 -123
  805. package/source/class/qx/test/ui/toolbar/ToolBar.js +20 -30
  806. package/source/class/qx/test/ui/tree/Tree.js +63 -42
  807. package/source/class/qx/test/ui/tree/TreeFolder.js +44 -46
  808. package/source/class/qx/test/ui/tree/virtual/AbstractTreeTest.js +61 -96
  809. package/source/class/qx/test/ui/tree/virtual/MultiSelection.js +68 -39
  810. package/source/class/qx/test/ui/tree/virtual/OneSelection.js +82 -42
  811. package/source/class/qx/test/ui/tree/virtual/OpenCloseController.js +80 -101
  812. package/source/class/qx/test/ui/tree/virtual/SingleSelection.js +40 -32
  813. package/source/class/qx/test/ui/tree/virtual/Sorting.js +46 -47
  814. package/source/class/qx/test/ui/tree/virtual/Tree.js +267 -191
  815. package/source/class/qx/test/ui/tree/virtual/TreeItem.js +60 -63
  816. package/source/class/qx/test/ui/tree/virtual/UtilTest.js +65 -50
  817. package/source/class/qx/test/ui/tree/virtual/WidgetProvider.js +127 -132
  818. package/source/class/qx/test/ui/virtual/Axis.js +210 -193
  819. package/source/class/qx/test/ui/virtual/Pane.js +287 -190
  820. package/source/class/qx/test/ui/virtual/PaneUpdate.js +71 -77
  821. package/source/class/qx/test/ui/virtual/PointerEventMock.js +10 -13
  822. package/source/class/qx/test/ui/virtual/Scroller.js +29 -39
  823. package/source/class/qx/test/ui/virtual/__init__.js +4 -4
  824. package/source/class/qx/test/ui/virtual/cell/WidgetCell.js +39 -40
  825. package/source/class/qx/test/ui/virtual/layer/CellSpanManager.js +157 -127
  826. package/source/class/qx/test/ui/virtual/layer/Column.js +6 -10
  827. package/source/class/qx/test/ui/virtual/layer/GridLines.js +6 -10
  828. package/source/class/qx/test/ui/virtual/layer/GridLinesHorizontal.js +6 -9
  829. package/source/class/qx/test/ui/virtual/layer/GridLinesVertical.js +6 -9
  830. package/source/class/qx/test/ui/virtual/layer/HtmlCell.js +12 -19
  831. package/source/class/qx/test/ui/virtual/layer/HtmlCellSpan.js +13 -21
  832. package/source/class/qx/test/ui/virtual/layer/LayerMock.js +31 -43
  833. package/source/class/qx/test/ui/virtual/layer/LayerSimple.js +26 -26
  834. package/source/class/qx/test/ui/virtual/layer/LayerTestCase.js +52 -50
  835. package/source/class/qx/test/ui/virtual/layer/Row.js +6 -10
  836. package/source/class/qx/test/ui/virtual/layer/WidgetCell.js +45 -52
  837. package/source/class/qx/test/ui/virtual/layer/WidgetCellSpan.js +71 -48
  838. package/source/class/qx/test/ui/virtual/layer/__init__.js +4 -4
  839. package/source/class/qx/test/ui/virtual/performance/AbstractLayerTest.js +84 -68
  840. package/source/class/qx/test/ui/virtual/performance/DomCell.js +6 -9
  841. package/source/class/qx/test/ui/virtual/performance/DomPoolCell.js +6 -9
  842. package/source/class/qx/test/ui/virtual/performance/HtmlDivCell.js +7 -11
  843. package/source/class/qx/test/ui/virtual/performance/HtmlDivRelative.js +6 -9
  844. package/source/class/qx/test/ui/virtual/performance/HtmlTableCell.js +8 -13
  845. package/source/class/qx/test/ui/virtual/performance/HtmlTableCellNaive.js +8 -13
  846. package/source/class/qx/test/ui/virtual/performance/HtmlTableCssCell.js +8 -19
  847. package/source/class/qx/test/ui/virtual/performance/WidgetCell.js +10 -15
  848. package/source/class/qx/test/ui/virtual/performance/__init__.js +4 -4
  849. package/source/class/qx/test/ui/virtual/performance/layer/DomCell.js +24 -18
  850. package/source/class/qx/test/ui/virtual/performance/layer/DomPoolCell.js +28 -26
  851. package/source/class/qx/test/ui/virtual/performance/layer/HtmlDivRelative.js +13 -17
  852. package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCell.js +29 -28
  853. package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCellNaive.js +22 -24
  854. package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCssCell.js +32 -47
  855. package/source/class/qx/test/ui/virtual/performance/layer/__init__.js +4 -4
  856. package/source/class/qx/test/ui/window/Desktop.js +21 -12
  857. package/source/class/qx/test/util/Base64.js +10 -13
  858. package/source/class/qx/test/util/ColorUtil.js +121 -54
  859. package/source/class/qx/test/util/DateFormat.js +569 -299
  860. package/source/class/qx/test/util/DateMock.js +16 -19
  861. package/source/class/qx/test/util/DeferredCall.js +12 -13
  862. package/source/class/qx/test/util/Delegate.js +28 -26
  863. package/source/class/qx/test/util/DisposeUtil.js +32 -14
  864. package/source/class/qx/test/util/DynamicScriptLoader.js +99 -64
  865. package/source/class/qx/test/util/Fsm.js +16 -18
  866. package/source/class/qx/test/util/Function.js +23 -19
  867. package/source/class/qx/test/util/LibraryManager.js +15 -22
  868. package/source/class/qx/test/util/NumberFormat.js +53 -64
  869. package/source/class/qx/test/util/PropertyUtil.js +35 -35
  870. package/source/class/qx/test/util/Request.js +26 -18
  871. package/source/class/qx/test/util/ResourceManager.js +50 -35
  872. package/source/class/qx/test/util/ResponseParser.js +45 -35
  873. package/source/class/qx/test/util/RingBuffer.js +15 -28
  874. package/source/class/qx/test/util/Serializer.js +210 -153
  875. package/source/class/qx/test/util/StringBuilder.js +7 -13
  876. package/source/class/qx/test/util/StringSplit.js +114 -69
  877. package/source/class/qx/test/util/Uri.js +74 -78
  878. package/source/class/qx/test/util/Validate.js +95 -64
  879. package/source/class/qx/test/util/placement/BestFitAxis.js +17 -26
  880. package/source/class/qx/test/util/placement/DirectAxis.js +8 -11
  881. package/source/class/qx/test/util/placement/KeepAlignAxis.js +17 -26
  882. package/source/class/qx/test/util/placement/Placement.js +607 -244
  883. package/source/class/qx/test/util/placement/__init__.js +4 -4
  884. package/source/class/qx/theme/Classic.js +9 -11
  885. package/source/class/qx/theme/Indigo.js +9 -11
  886. package/source/class/qx/theme/Modern.js +9 -11
  887. package/source/class/qx/theme/Simple.js +9 -11
  888. package/source/class/qx/theme/TangibleDark.js +1 -1
  889. package/source/class/qx/theme/TangibleLight.js +1 -1
  890. package/source/class/qx/theme/__init__.js +4 -4
  891. package/source/class/qx/theme/classic/Appearance.js +995 -1336
  892. package/source/class/qx/theme/classic/Color.js +83 -83
  893. package/source/class/qx/theme/classic/Decoration.js +318 -299
  894. package/source/class/qx/theme/classic/Font.js +38 -25
  895. package/source/class/qx/theme/icon/Oxygen.js +4 -5
  896. package/source/class/qx/theme/icon/Tango.js +4 -5
  897. package/source/class/qx/theme/indigo/Appearance.js +66 -85
  898. package/source/class/qx/theme/indigo/Color.js +65 -66
  899. package/source/class/qx/theme/indigo/Decoration.js +31 -45
  900. package/source/class/qx/theme/indigo/Font.js +20 -29
  901. package/source/class/qx/theme/manager/Appearance.js +58 -91
  902. package/source/class/qx/theme/manager/Color.js +20 -41
  903. package/source/class/qx/theme/manager/Decoration.js +72 -100
  904. package/source/class/qx/theme/manager/Font.js +51 -67
  905. package/source/class/qx/theme/manager/Icon.js +13 -27
  906. package/source/class/qx/theme/manager/Meta.js +27 -44
  907. package/source/class/qx/theme/modern/Appearance.js +1049 -1440
  908. package/source/class/qx/theme/modern/Color.js +155 -166
  909. package/source/class/qx/theme/modern/Decoration.js +471 -598
  910. package/source/class/qx/theme/modern/Font.js +59 -52
  911. package/source/class/qx/theme/simple/Appearance.js +936 -1207
  912. package/source/class/qx/theme/simple/Color.js +62 -62
  913. package/source/class/qx/theme/simple/Decoration.js +456 -678
  914. package/source/class/qx/theme/simple/Font.js +18 -25
  915. package/source/class/qx/theme/simple/Image.js +49 -52
  916. package/source/class/qx/theme/tangible/Appearance.js +1575 -1743
  917. package/source/class/qx/theme/tangible/ColorDark.js +5 -5
  918. package/source/class/qx/theme/tangible/ColorEngine.js +38 -35
  919. package/source/class/qx/theme/tangible/ColorLight.js +7 -7
  920. package/source/class/qx/theme/tangible/Decoration.js +1108 -1300
  921. package/source/class/qx/theme/tangible/Font.js +66 -70
  922. package/source/class/qx/theme/tangible/Image.js +44 -48
  923. package/source/class/qx/tool/cli/Application.js +5 -5
  924. package/source/class/qx/tool/cli/Cli.js +103 -52
  925. package/source/class/qx/tool/cli/ConfigDb.js +18 -15
  926. package/source/class/qx/tool/cli/LibraryApplication.js +1 -1
  927. package/source/class/qx/tool/cli/Watch.js +174 -102
  928. package/source/class/qx/tool/cli/api/AbstractApi.js +17 -18
  929. package/source/class/qx/tool/cli/api/CompilerApi.js +15 -8
  930. package/source/class/qx/tool/cli/api/LibraryApi.js +4 -6
  931. package/source/class/qx/tool/cli/api/Test.js +12 -9
  932. package/source/class/qx/tool/cli/commands/Add.js +12 -15
  933. package/source/class/qx/tool/cli/commands/Clean.js +10 -9
  934. package/source/class/qx/tool/cli/commands/Command.js +18 -13
  935. package/source/class/qx/tool/cli/commands/Compile.js +633 -267
  936. package/source/class/qx/tool/cli/commands/Config.js +75 -42
  937. package/source/class/qx/tool/cli/commands/Create.js +108 -59
  938. package/source/class/qx/tool/cli/commands/Deploy.js +138 -86
  939. package/source/class/qx/tool/cli/commands/Es6ify.js +118 -0
  940. package/source/class/qx/tool/cli/commands/Lint.js +75 -34
  941. package/source/class/qx/tool/cli/commands/Migrate.js +13 -7
  942. package/source/class/qx/tool/cli/commands/Package.js +67 -45
  943. package/source/class/qx/tool/cli/commands/Pkg.js +21 -18
  944. package/source/class/qx/tool/cli/commands/Run.js +57 -37
  945. package/source/class/qx/tool/cli/commands/Serve.js +62 -37
  946. package/source/class/qx/tool/cli/commands/Test.js +40 -18
  947. package/source/class/qx/tool/cli/commands/add/Class.js +66 -28
  948. package/source/class/qx/tool/cli/commands/add/Script.js +54 -27
  949. package/source/class/qx/tool/cli/commands/package/Install.js +265 -103
  950. package/source/class/qx/tool/cli/commands/package/List.js +199 -75
  951. package/source/class/qx/tool/cli/commands/package/Migrate.js +7 -3
  952. package/source/class/qx/tool/cli/commands/package/Publish.js +220 -114
  953. package/source/class/qx/tool/cli/commands/package/Remove.js +40 -17
  954. package/source/class/qx/tool/cli/commands/package/Update.js +115 -48
  955. package/source/class/qx/tool/cli/commands/package/Upgrade.js +41 -20
  956. package/source/class/qx/tool/compiler/Analyser.js +427 -222
  957. package/source/class/qx/tool/compiler/ClassFile.js +831 -401
  958. package/source/class/qx/tool/compiler/Console.js +136 -87
  959. package/source/class/qx/tool/compiler/Es6ify.js +404 -0
  960. package/source/class/qx/tool/compiler/Preprocess.js +28 -25
  961. package/source/class/qx/tool/compiler/app/Application.js +149 -72
  962. package/source/class/qx/tool/compiler/app/Cldr.js +506 -106
  963. package/source/class/qx/tool/compiler/app/Library.js +62 -27
  964. package/source/class/qx/tool/compiler/app/Part.js +10 -12
  965. package/source/class/qx/tool/compiler/app/Translation.js +189 -162
  966. package/source/class/qx/tool/compiler/app/WebFont.js +215 -161
  967. package/source/class/qx/tool/compiler/jsdoc/ChildControlParser.js +3 -3
  968. package/source/class/qx/tool/compiler/jsdoc/CommandParser.js +8 -9
  969. package/source/class/qx/tool/compiler/jsdoc/ParamParser.js +7 -6
  970. package/source/class/qx/tool/compiler/jsdoc/Parser.js +27 -18
  971. package/source/class/qx/tool/compiler/jsdoc/ReturnParser.js +3 -3
  972. package/source/class/qx/tool/compiler/jsdoc/ThrowsParser.js +4 -4
  973. package/source/class/qx/tool/compiler/makers/AbstractAppMaker.js +5 -6
  974. package/source/class/qx/tool/compiler/makers/AppMaker.js +40 -19
  975. package/source/class/qx/tool/compiler/makers/Maker.js +29 -21
  976. package/source/class/qx/tool/compiler/resources/AbstractMatcher.js +8 -8
  977. package/source/class/qx/tool/compiler/resources/Asset.js +123 -61
  978. package/source/class/qx/tool/compiler/resources/ImageLoader.js +18 -8
  979. package/source/class/qx/tool/compiler/resources/Manager.js +156 -93
  980. package/source/class/qx/tool/compiler/resources/MetaLoader.js +5 -3
  981. package/source/class/qx/tool/compiler/resources/ResourceConverter.js +8 -8
  982. package/source/class/qx/tool/compiler/resources/ResourceLoader.js +8 -9
  983. package/source/class/qx/tool/compiler/resources/ScssConverter.js +54 -18
  984. package/source/class/qx/tool/compiler/resources/ScssFile.js +157 -80
  985. package/source/class/qx/tool/compiler/resources/ScssIncludeConverter.js +3 -3
  986. package/source/class/qx/tool/compiler/targets/BuildTarget.js +23 -13
  987. package/source/class/qx/tool/compiler/targets/SourceCodeCopier.js +29 -9
  988. package/source/class/qx/tool/compiler/targets/SourceTarget.js +2 -2
  989. package/source/class/qx/tool/compiler/targets/Target.js +292 -187
  990. package/source/class/qx/tool/compiler/targets/TypeScriptWriter.js +163 -103
  991. package/source/class/qx/tool/compiler/targets/meta/AbstractJavascriptMeta.js +48 -23
  992. package/source/class/qx/tool/compiler/targets/meta/ApplicationMeta.js +75 -62
  993. package/source/class/qx/tool/compiler/targets/meta/BootJs.js +49 -29
  994. package/source/class/qx/tool/compiler/targets/meta/Javascript.js +6 -7
  995. package/source/class/qx/tool/compiler/targets/meta/Package.js +54 -51
  996. package/source/class/qx/tool/compiler/targets/meta/PackageJavascript.js +41 -21
  997. package/source/class/qx/tool/compiler/targets/meta/Part.js +9 -10
  998. package/source/class/qx/tool/compiler/targets/meta/PolyfillJs.js +18 -5
  999. package/source/class/qx/tool/compiler/targets/meta/Uglify.js +54 -21
  1000. package/source/class/qx/tool/config/Abstract.js +61 -25
  1001. package/source/class/qx/tool/config/Compile.js +3 -2
  1002. package/source/class/qx/tool/config/Lockfile.js +3 -2
  1003. package/source/class/qx/tool/config/Manifest.js +3 -2
  1004. package/source/class/qx/tool/config/Registry.js +4 -3
  1005. package/source/class/qx/tool/config/Utils.js +88 -37
  1006. package/source/class/qx/tool/migration/BaseMigration.js +67 -25
  1007. package/source/class/qx/tool/migration/M6_0_0.js +96 -46
  1008. package/source/class/qx/tool/migration/M7_0_0.js +12 -6
  1009. package/source/class/qx/tool/migration/Runner.js +28 -14
  1010. package/source/class/qx/tool/utils/IndexedArray.js +15 -18
  1011. package/source/class/qx/tool/utils/Json.js +35 -14
  1012. package/source/class/qx/tool/utils/LogManager.js +50 -26
  1013. package/source/class/qx/tool/utils/Logger.js +11 -12
  1014. package/source/class/qx/tool/utils/Promisify.js +45 -49
  1015. package/source/class/qx/tool/utils/Utils.js +63 -48
  1016. package/source/class/qx/tool/utils/Values.js +4 -7
  1017. package/source/class/qx/tool/utils/Website.js +82 -29
  1018. package/source/class/qx/tool/utils/files/FindFiles.js +37 -33
  1019. package/source/class/qx/tool/utils/files/Utils.js +74 -54
  1020. package/source/class/qx/tool/utils/json/Parser.js +163 -54
  1021. package/source/class/qx/tool/utils/json/Stringify.js +87 -72
  1022. package/source/class/qx/tool/utils/json/Tokenizer.js +64 -39
  1023. package/source/class/qx/tool/utils/json/Writer.js +20 -21
  1024. package/source/class/qx/type/Array.js +19 -41
  1025. package/source/class/qx/type/BaseArray.js +136 -151
  1026. package/source/class/qx/type/BaseError.js +17 -34
  1027. package/source/class/qx/type/BaseString.js +104 -121
  1028. package/source/class/qx/type/__init__.js +3 -3
  1029. package/source/class/qx/ui/basic/Atom.js +75 -109
  1030. package/source/class/qx/ui/basic/Image.js +283 -319
  1031. package/source/class/qx/ui/basic/Label.js +161 -208
  1032. package/source/class/qx/ui/command/Command.js +51 -86
  1033. package/source/class/qx/ui/command/Group.js +43 -50
  1034. package/source/class/qx/ui/command/GroupManager.js +50 -53
  1035. package/source/class/qx/ui/container/Composite.js +15 -29
  1036. package/source/class/qx/ui/container/Resizer.js +7 -11
  1037. package/source/class/qx/ui/container/Scroll.js +10 -21
  1038. package/source/class/qx/ui/container/SlideBar.js +76 -119
  1039. package/source/class/qx/ui/container/Stack.js +27 -54
  1040. package/source/class/qx/ui/control/ColorPopup.js +109 -130
  1041. package/source/class/qx/ui/control/ColorSelector.js +334 -301
  1042. package/source/class/qx/ui/control/DateChooser.js +143 -177
  1043. package/source/class/qx/ui/core/Blocker.js +91 -127
  1044. package/source/class/qx/ui/core/ColumnData.js +16 -34
  1045. package/source/class/qx/ui/core/DragDropCursor.js +17 -30
  1046. package/source/class/qx/ui/core/DragDropScrolling.js +8 -14
  1047. package/source/class/qx/ui/core/EventHandler.js +108 -132
  1048. package/source/class/qx/ui/core/FocusHandler.js +78 -127
  1049. package/source/class/qx/ui/core/IMultiSelection.js +5 -9
  1050. package/source/class/qx/ui/core/ISingleSelection.js +10 -16
  1051. package/source/class/qx/ui/core/ISingleSelectionProvider.js +4 -6
  1052. package/source/class/qx/ui/core/LayoutItem.js +190 -306
  1053. package/source/class/qx/ui/core/MBlocker.js +22 -38
  1054. package/source/class/qx/ui/core/MChildrenHandling.js +14 -29
  1055. package/source/class/qx/ui/core/MContentPadding.js +50 -69
  1056. package/source/class/qx/ui/core/MDragDropScrolling.js +82 -80
  1057. package/source/class/qx/ui/core/MExecutable.js +27 -52
  1058. package/source/class/qx/ui/core/MLayoutHandling.js +6 -14
  1059. package/source/class/qx/ui/core/MMovable.js +64 -80
  1060. package/source/class/qx/ui/core/MMultiSelectionHandling.js +68 -87
  1061. package/source/class/qx/ui/core/MNativeOverflow.js +16 -26
  1062. package/source/class/qx/ui/core/MPlacement.js +171 -170
  1063. package/source/class/qx/ui/core/MRemoteChildrenHandling.js +14 -27
  1064. package/source/class/qx/ui/core/MRemoteLayoutHandling.js +4 -7
  1065. package/source/class/qx/ui/core/MResizable.js +142 -175
  1066. package/source/class/qx/ui/core/MSingleSelectionHandling.js +40 -45
  1067. package/source/class/qx/ui/core/SingleSelectionManager.js +41 -60
  1068. package/source/class/qx/ui/core/Spacer.js +12 -22
  1069. package/source/class/qx/ui/core/Widget.js +628 -983
  1070. package/source/class/qx/ui/core/queue/Appearance.js +15 -24
  1071. package/source/class/qx/ui/core/queue/Dispose.js +7 -16
  1072. package/source/class/qx/ui/core/queue/Layout.js +44 -71
  1073. package/source/class/qx/ui/core/queue/Manager.js +140 -133
  1074. package/source/class/qx/ui/core/queue/Visibility.js +21 -39
  1075. package/source/class/qx/ui/core/queue/Widget.js +15 -26
  1076. package/source/class/qx/ui/core/scroll/AbstractScrollArea.js +124 -162
  1077. package/source/class/qx/ui/core/scroll/IScrollBar.js +13 -24
  1078. package/source/class/qx/ui/core/scroll/MRoll.js +14 -19
  1079. package/source/class/qx/ui/core/scroll/MScrollBarFactory.js +3 -6
  1080. package/source/class/qx/ui/core/scroll/MWheelHandling.js +10 -12
  1081. package/source/class/qx/ui/core/scroll/NativeScrollBar.js +101 -125
  1082. package/source/class/qx/ui/core/scroll/ScrollBar.js +86 -130
  1083. package/source/class/qx/ui/core/scroll/ScrollPane.js +95 -134
  1084. package/source/class/qx/ui/core/scroll/ScrollSlider.js +13 -19
  1085. package/source/class/qx/ui/core/scroll/__init__.js +4 -4
  1086. package/source/class/qx/ui/core/selection/Abstract.js +255 -456
  1087. package/source/class/qx/ui/core/selection/ScrollArea.js +35 -73
  1088. package/source/class/qx/ui/core/selection/Widget.js +57 -120
  1089. package/source/class/qx/ui/decoration/Abstract.js +11 -20
  1090. package/source/class/qx/ui/decoration/Decorator.js +56 -55
  1091. package/source/class/qx/ui/decoration/IDecorator.js +5 -11
  1092. package/source/class/qx/ui/decoration/MBackgroundColor.js +13 -20
  1093. package/source/class/qx/ui/decoration/MBackgroundImage.js +82 -77
  1094. package/source/class/qx/ui/decoration/MBorderImage.js +72 -94
  1095. package/source/class/qx/ui/decoration/MBorderRadius.js +35 -38
  1096. package/source/class/qx/ui/decoration/MBoxShadow.js +61 -55
  1097. package/source/class/qx/ui/decoration/MDoubleBorder.js +157 -155
  1098. package/source/class/qx/ui/decoration/MLinearBackgroundGradient.js +169 -89
  1099. package/source/class/qx/ui/decoration/MSingleBorder.js +138 -124
  1100. package/source/class/qx/ui/decoration/MTransition.js +46 -42
  1101. package/source/class/qx/ui/decoration/__init__.js +2 -2
  1102. package/source/class/qx/ui/embed/AbstractIframe.js +37 -55
  1103. package/source/class/qx/ui/embed/Canvas.js +34 -66
  1104. package/source/class/qx/ui/embed/Html.js +46 -70
  1105. package/source/class/qx/ui/embed/Iframe.js +178 -158
  1106. package/source/class/qx/ui/embed/ThemedIframe.js +91 -135
  1107. package/source/class/qx/ui/form/AbstractField.js +262 -303
  1108. package/source/class/qx/ui/form/AbstractSelectBox.js +65 -87
  1109. package/source/class/qx/ui/form/Button.js +35 -73
  1110. package/source/class/qx/ui/form/CheckBox.js +26 -48
  1111. package/source/class/qx/ui/form/CheckedList.js +41 -25
  1112. package/source/class/qx/ui/form/CheckedSelectBox.js +97 -62
  1113. package/source/class/qx/ui/form/ComboBox.js +98 -121
  1114. package/source/class/qx/ui/form/DateField.js +140 -181
  1115. package/source/class/qx/ui/form/Form.js +50 -69
  1116. package/source/class/qx/ui/form/HoverButton.js +37 -54
  1117. package/source/class/qx/ui/form/IArrayForm.js +8 -16
  1118. package/source/class/qx/ui/form/IBooleanForm.js +8 -16
  1119. package/source/class/qx/ui/form/IColorForm.js +8 -16
  1120. package/source/class/qx/ui/form/IDateForm.js +8 -16
  1121. package/source/class/qx/ui/form/IExecutable.js +7 -14
  1122. package/source/class/qx/ui/form/IField.js +7 -14
  1123. package/source/class/qx/ui/form/IForm.js +17 -32
  1124. package/source/class/qx/ui/form/IListItem.js +1 -4
  1125. package/source/class/qx/ui/form/IModel.js +7 -15
  1126. package/source/class/qx/ui/form/IModelForm.js +8 -16
  1127. package/source/class/qx/ui/form/IModelSelection.js +4 -8
  1128. package/source/class/qx/ui/form/INumberForm.js +8 -15
  1129. package/source/class/qx/ui/form/IRadioItem.js +8 -17
  1130. package/source/class/qx/ui/form/IRange.js +10 -20
  1131. package/source/class/qx/ui/form/IStringForm.js +8 -16
  1132. package/source/class/qx/ui/form/List.js +82 -122
  1133. package/source/class/qx/ui/form/ListItem.js +21 -38
  1134. package/source/class/qx/ui/form/MForm.js +35 -41
  1135. package/source/class/qx/ui/form/MModelProperty.js +9 -14
  1136. package/source/class/qx/ui/form/MModelSelection.js +30 -32
  1137. package/source/class/qx/ui/form/MenuButton.js +50 -77
  1138. package/source/class/qx/ui/form/PasswordField.js +4 -6
  1139. package/source/class/qx/ui/form/RadioButton.js +36 -72
  1140. package/source/class/qx/ui/form/RadioButtonGroup.js +67 -82
  1141. package/source/class/qx/ui/form/RadioGroup.js +92 -127
  1142. package/source/class/qx/ui/form/RepeatButton.js +57 -106
  1143. package/source/class/qx/ui/form/Resetter.js +19 -29
  1144. package/source/class/qx/ui/form/SelectBox.js +62 -105
  1145. package/source/class/qx/ui/form/Slider.js +202 -269
  1146. package/source/class/qx/ui/form/Spinner.js +173 -217
  1147. package/source/class/qx/ui/form/SplitButton.js +73 -115
  1148. package/source/class/qx/ui/form/Tag.js +7 -8
  1149. package/source/class/qx/ui/form/TextArea.js +147 -153
  1150. package/source/class/qx/ui/form/TextField.js +37 -46
  1151. package/source/class/qx/ui/form/ToggleButton.js +54 -90
  1152. package/source/class/qx/ui/form/VirtualComboBox.js +73 -113
  1153. package/source/class/qx/ui/form/VirtualSelectBox.js +264 -274
  1154. package/source/class/qx/ui/form/core/AbstractVirtualBox.js +117 -157
  1155. package/source/class/qx/ui/form/core/VirtualDropDownList.js +101 -144
  1156. package/source/class/qx/ui/form/renderer/AbstractRenderer.js +48 -55
  1157. package/source/class/qx/ui/form/renderer/Double.js +25 -34
  1158. package/source/class/qx/ui/form/renderer/IFormRenderer.js +4 -8
  1159. package/source/class/qx/ui/form/renderer/Single.js +25 -35
  1160. package/source/class/qx/ui/form/renderer/SinglePlaceholder.js +12 -11
  1161. package/source/class/qx/ui/form/renderer/__init__.js +5 -5
  1162. package/source/class/qx/ui/form/validation/AsyncValidator.js +13 -19
  1163. package/source/class/qx/ui/form/validation/Manager.js +74 -108
  1164. package/source/class/qx/ui/form/validation/__init__.js +6 -6
  1165. package/source/class/qx/ui/groupbox/CheckGroupBox.js +30 -47
  1166. package/source/class/qx/ui/groupbox/GroupBox.js +36 -75
  1167. package/source/class/qx/ui/groupbox/RadioGroupBox.js +29 -59
  1168. package/source/class/qx/ui/groupbox/__init__.js +3 -3
  1169. package/source/class/qx/ui/indicator/ProgressBar.js +29 -46
  1170. package/source/class/qx/ui/layout/Abstract.js +28 -53
  1171. package/source/class/qx/ui/layout/Atom.js +95 -111
  1172. package/source/class/qx/ui/layout/Basic.js +29 -30
  1173. package/source/class/qx/ui/layout/Canvas.js +62 -99
  1174. package/source/class/qx/ui/layout/Dock.js +266 -250
  1175. package/source/class/qx/ui/layout/Flow.js +50 -76
  1176. package/source/class/qx/ui/layout/Grid.js +268 -343
  1177. package/source/class/qx/ui/layout/Grow.js +26 -32
  1178. package/source/class/qx/ui/layout/HBox.js +137 -153
  1179. package/source/class/qx/ui/layout/LineSizeIterator.js +19 -28
  1180. package/source/class/qx/ui/layout/Util.js +91 -120
  1181. package/source/class/qx/ui/layout/VBox.js +125 -147
  1182. package/source/class/qx/ui/list/List.js +148 -262
  1183. package/source/class/qx/ui/list/core/IListDelegate.js +13 -26
  1184. package/source/class/qx/ui/list/core/MWidgetController.js +51 -78
  1185. package/source/class/qx/ui/list/provider/IListProvider.js +15 -28
  1186. package/source/class/qx/ui/list/provider/WidgetProvider.js +52 -84
  1187. package/source/class/qx/ui/menu/AbstractButton.js +126 -131
  1188. package/source/class/qx/ui/menu/Button.js +11 -25
  1189. package/source/class/qx/ui/menu/ButtonLayout.js +49 -37
  1190. package/source/class/qx/ui/menu/CheckBox.js +21 -46
  1191. package/source/class/qx/ui/menu/Layout.js +45 -51
  1192. package/source/class/qx/ui/menu/Manager.js +131 -209
  1193. package/source/class/qx/ui/menu/Menu.js +180 -265
  1194. package/source/class/qx/ui/menu/MenuSlideBar.js +13 -20
  1195. package/source/class/qx/ui/menu/RadioButton.js +29 -51
  1196. package/source/class/qx/ui/menu/Separator.js +9 -16
  1197. package/source/class/qx/ui/menubar/Button.js +23 -41
  1198. package/source/class/qx/ui/menubar/MenuBar.js +9 -13
  1199. package/source/class/qx/ui/mobile/__init__.js +5 -5
  1200. package/source/class/qx/ui/mobile/basic/Atom.js +79 -101
  1201. package/source/class/qx/ui/mobile/basic/Image.js +80 -86
  1202. package/source/class/qx/ui/mobile/basic/Label.js +38 -54
  1203. package/source/class/qx/ui/mobile/container/Carousel.js +281 -188
  1204. package/source/class/qx/ui/mobile/container/Collapsible.js +57 -77
  1205. package/source/class/qx/ui/mobile/container/Composite.js +9 -13
  1206. package/source/class/qx/ui/mobile/container/Drawer.js +167 -164
  1207. package/source/class/qx/ui/mobile/container/INavigation.js +6 -10
  1208. package/source/class/qx/ui/mobile/container/IScrollDelegate.js +4 -6
  1209. package/source/class/qx/ui/mobile/container/MIScroll.js +108 -100
  1210. package/source/class/qx/ui/mobile/container/MNativeScroll.js +118 -102
  1211. package/source/class/qx/ui/mobile/container/MScrollHandling.js +8 -7
  1212. package/source/class/qx/ui/mobile/container/Navigation.js +46 -65
  1213. package/source/class/qx/ui/mobile/container/Scroll.js +140 -151
  1214. package/source/class/qx/ui/mobile/control/Picker.js +125 -112
  1215. package/source/class/qx/ui/mobile/core/Blocker.js +62 -71
  1216. package/source/class/qx/ui/mobile/core/DomUpdatedHandler.js +24 -60
  1217. package/source/class/qx/ui/mobile/core/EventHandler.js +158 -138
  1218. package/source/class/qx/ui/mobile/core/MChildrenHandling.js +14 -30
  1219. package/source/class/qx/ui/mobile/core/MLayoutHandling.js +6 -14
  1220. package/source/class/qx/ui/mobile/core/MResize.js +16 -30
  1221. package/source/class/qx/ui/mobile/core/Root.js +90 -80
  1222. package/source/class/qx/ui/mobile/core/Widget.js +351 -479
  1223. package/source/class/qx/ui/mobile/dialog/BusyIndicator.js +31 -46
  1224. package/source/class/qx/ui/mobile/dialog/Manager.js +127 -89
  1225. package/source/class/qx/ui/mobile/dialog/Menu.js +111 -122
  1226. package/source/class/qx/ui/mobile/dialog/Popup.js +202 -194
  1227. package/source/class/qx/ui/mobile/embed/Canvas.js +12 -25
  1228. package/source/class/qx/ui/mobile/embed/Html.js +13 -27
  1229. package/source/class/qx/ui/mobile/form/Button.js +12 -18
  1230. package/source/class/qx/ui/mobile/form/CheckBox.js +20 -35
  1231. package/source/class/qx/ui/mobile/form/Form.js +31 -51
  1232. package/source/class/qx/ui/mobile/form/Group.js +18 -30
  1233. package/source/class/qx/ui/mobile/form/Input.js +30 -35
  1234. package/source/class/qx/ui/mobile/form/Label.js +76 -79
  1235. package/source/class/qx/ui/mobile/form/MState.js +20 -27
  1236. package/source/class/qx/ui/mobile/form/MText.js +27 -47
  1237. package/source/class/qx/ui/mobile/form/MValue.js +66 -94
  1238. package/source/class/qx/ui/mobile/form/NumberField.js +30 -47
  1239. package/source/class/qx/ui/mobile/form/PasswordField.js +8 -14
  1240. package/source/class/qx/ui/mobile/form/RadioButton.js +25 -46
  1241. package/source/class/qx/ui/mobile/form/RadioGroup.js +2 -4
  1242. package/source/class/qx/ui/mobile/form/Row.js +14 -29
  1243. package/source/class/qx/ui/mobile/form/SelectBox.js +77 -104
  1244. package/source/class/qx/ui/mobile/form/Slider.js +116 -144
  1245. package/source/class/qx/ui/mobile/form/TextArea.js +26 -39
  1246. package/source/class/qx/ui/mobile/form/TextField.js +18 -28
  1247. package/source/class/qx/ui/mobile/form/Title.js +11 -19
  1248. package/source/class/qx/ui/mobile/form/ToggleButton.js +35 -58
  1249. package/source/class/qx/ui/mobile/form/__init__.js +1 -1
  1250. package/source/class/qx/ui/mobile/form/renderer/AbstractRenderer.js +24 -31
  1251. package/source/class/qx/ui/mobile/form/renderer/Single.js +59 -85
  1252. package/source/class/qx/ui/mobile/form/renderer/SinglePlaceholder.js +8 -16
  1253. package/source/class/qx/ui/mobile/layout/Abstract.js +48 -85
  1254. package/source/class/qx/ui/mobile/layout/AbstractBox.js +93 -125
  1255. package/source/class/qx/ui/mobile/layout/Card.js +133 -116
  1256. package/source/class/qx/ui/mobile/layout/CardAnimation.js +95 -72
  1257. package/source/class/qx/ui/mobile/layout/HBox.js +9 -12
  1258. package/source/class/qx/ui/mobile/layout/VBox.js +9 -12
  1259. package/source/class/qx/ui/mobile/list/IListDelegate.js +5 -9
  1260. package/source/class/qx/ui/mobile/list/List.js +172 -183
  1261. package/source/class/qx/ui/mobile/list/provider/Provider.js +58 -65
  1262. package/source/class/qx/ui/mobile/list/renderer/Abstract.js +54 -82
  1263. package/source/class/qx/ui/mobile/list/renderer/Default.js +39 -55
  1264. package/source/class/qx/ui/mobile/list/renderer/group/Abstract.js +20 -33
  1265. package/source/class/qx/ui/mobile/list/renderer/group/Default.js +29 -45
  1266. package/source/class/qx/ui/mobile/navigationbar/BackButton.js +11 -15
  1267. package/source/class/qx/ui/mobile/navigationbar/Button.js +11 -15
  1268. package/source/class/qx/ui/mobile/navigationbar/NavigationBar.js +23 -29
  1269. package/source/class/qx/ui/mobile/navigationbar/Title.js +12 -20
  1270. package/source/class/qx/ui/mobile/page/Manager.js +195 -169
  1271. package/source/class/qx/ui/mobile/page/NavigationPage.js +132 -196
  1272. package/source/class/qx/ui/mobile/page/Page.js +109 -148
  1273. package/source/class/qx/ui/mobile/tabbar/TabBar.js +41 -62
  1274. package/source/class/qx/ui/mobile/tabbar/TabButton.js +19 -28
  1275. package/source/class/qx/ui/mobile/toolbar/Button.js +7 -11
  1276. package/source/class/qx/ui/mobile/toolbar/Separator.js +11 -15
  1277. package/source/class/qx/ui/mobile/toolbar/ToolBar.js +30 -39
  1278. package/source/class/qx/ui/popup/Manager.js +41 -53
  1279. package/source/class/qx/ui/popup/Popup.js +22 -47
  1280. package/source/class/qx/ui/popup/__init__.js +32 -32
  1281. package/source/class/qx/ui/progressive/Progressive.js +96 -137
  1282. package/source/class/qx/ui/progressive/State.js +12 -19
  1283. package/source/class/qx/ui/progressive/headfoot/Abstract.js +10 -15
  1284. package/source/class/qx/ui/progressive/headfoot/Null.js +4 -7
  1285. package/source/class/qx/ui/progressive/headfoot/Progress.js +67 -69
  1286. package/source/class/qx/ui/progressive/headfoot/TableHeading.js +42 -54
  1287. package/source/class/qx/ui/progressive/model/Abstract.js +8 -15
  1288. package/source/class/qx/ui/progressive/model/Default.js +17 -29
  1289. package/source/class/qx/ui/progressive/renderer/Abstract.js +6 -11
  1290. package/source/class/qx/ui/progressive/renderer/FunctionCaller.js +4 -7
  1291. package/source/class/qx/ui/progressive/renderer/table/Row.js +215 -242
  1292. package/source/class/qx/ui/progressive/renderer/table/Widths.js +32 -47
  1293. package/source/class/qx/ui/progressive/renderer/table/cell/Abstract.js +17 -24
  1294. package/source/class/qx/ui/progressive/renderer/table/cell/Boolean.js +68 -79
  1295. package/source/class/qx/ui/progressive/renderer/table/cell/Conditional.js +146 -199
  1296. package/source/class/qx/ui/progressive/renderer/table/cell/Default.js +14 -32
  1297. package/source/class/qx/ui/progressive/renderer/table/cell/Html.js +2 -3
  1298. package/source/class/qx/ui/progressive/renderer/table/cell/Icon.js +38 -53
  1299. package/source/class/qx/ui/progressive/renderer/table/cell/Image.js +20 -42
  1300. package/source/class/qx/ui/progressive/renderer/table/cell/String.js +6 -12
  1301. package/source/class/qx/ui/progressive/structure/Abstract.js +14 -26
  1302. package/source/class/qx/ui/progressive/structure/Default.js +20 -40
  1303. package/source/class/qx/ui/root/Abstract.js +73 -90
  1304. package/source/class/qx/ui/root/Application.js +57 -61
  1305. package/source/class/qx/ui/root/Inline.js +78 -64
  1306. package/source/class/qx/ui/root/Page.js +25 -46
  1307. package/source/class/qx/ui/splitpane/Blocker.js +20 -30
  1308. package/source/class/qx/ui/splitpane/HLayout.js +53 -49
  1309. package/source/class/qx/ui/splitpane/Pane.js +112 -150
  1310. package/source/class/qx/ui/splitpane/Slider.js +9 -15
  1311. package/source/class/qx/ui/splitpane/Splitter.js +27 -46
  1312. package/source/class/qx/ui/splitpane/VLayout.js +53 -49
  1313. package/source/class/qx/ui/style/Stylesheet.js +12 -19
  1314. package/source/class/qx/ui/table/ICellEditorFactory.js +4 -8
  1315. package/source/class/qx/ui/table/ICellRenderer.js +3 -7
  1316. package/source/class/qx/ui/table/IColumnMenuButton.js +6 -11
  1317. package/source/class/qx/ui/table/IColumnMenuItem.js +5 -8
  1318. package/source/class/qx/ui/table/IHeaderRenderer.js +4 -8
  1319. package/source/class/qx/ui/table/IRowRenderer.js +6 -12
  1320. package/source/class/qx/ui/table/ITableModel.js +23 -41
  1321. package/source/class/qx/ui/table/MTableContextMenu.js +25 -28
  1322. package/source/class/qx/ui/table/Table.js +556 -748
  1323. package/source/class/qx/ui/table/celleditor/AbstractField.js +16 -26
  1324. package/source/class/qx/ui/table/celleditor/CheckBox.js +15 -16
  1325. package/source/class/qx/ui/table/celleditor/ComboBox.js +24 -34
  1326. package/source/class/qx/ui/table/celleditor/Dynamic.js +25 -32
  1327. package/source/class/qx/ui/table/celleditor/PasswordField.js +4 -8
  1328. package/source/class/qx/ui/table/celleditor/SelectBox.js +29 -38
  1329. package/source/class/qx/ui/table/celleditor/TextField.js +9 -14
  1330. package/source/class/qx/ui/table/cellrenderer/Abstract.js +78 -73
  1331. package/source/class/qx/ui/table/cellrenderer/AbstractImage.js +65 -84
  1332. package/source/class/qx/ui/table/cellrenderer/Boolean.js +36 -50
  1333. package/source/class/qx/ui/table/cellrenderer/Conditional.js +74 -63
  1334. package/source/class/qx/ui/table/cellrenderer/Date.js +12 -22
  1335. package/source/class/qx/ui/table/cellrenderer/Debug.js +9 -9
  1336. package/source/class/qx/ui/table/cellrenderer/Default.js +30 -52
  1337. package/source/class/qx/ui/table/cellrenderer/Dynamic.js +13 -24
  1338. package/source/class/qx/ui/table/cellrenderer/Html.js +6 -8
  1339. package/source/class/qx/ui/table/cellrenderer/Image.js +13 -26
  1340. package/source/class/qx/ui/table/cellrenderer/Number.js +13 -24
  1341. package/source/class/qx/ui/table/cellrenderer/Password.js +8 -11
  1342. package/source/class/qx/ui/table/cellrenderer/Replace.js +27 -42
  1343. package/source/class/qx/ui/table/cellrenderer/String.js +5 -7
  1344. package/source/class/qx/ui/table/columnmenu/Button.js +19 -29
  1345. package/source/class/qx/ui/table/columnmenu/MenuItem.js +11 -19
  1346. package/source/class/qx/ui/table/columnmenu/__init__.js +4 -4
  1347. package/source/class/qx/ui/table/columnmenu/grid/__init__.js +4 -4
  1348. package/source/class/qx/ui/table/columnmenu/simple/__init__.js +4 -4
  1349. package/source/class/qx/ui/table/columnmodel/Basic.js +193 -215
  1350. package/source/class/qx/ui/table/columnmodel/Resize.js +65 -111
  1351. package/source/class/qx/ui/table/columnmodel/resizebehavior/Abstract.js +17 -24
  1352. package/source/class/qx/ui/table/columnmodel/resizebehavior/Default.js +66 -117
  1353. package/source/class/qx/ui/table/headerrenderer/Default.js +25 -46
  1354. package/source/class/qx/ui/table/headerrenderer/HeaderCell.js +36 -51
  1355. package/source/class/qx/ui/table/headerrenderer/Icon.js +11 -27
  1356. package/source/class/qx/ui/table/model/Abstract.js +52 -62
  1357. package/source/class/qx/ui/table/model/Filtered.js +121 -153
  1358. package/source/class/qx/ui/table/model/Remote.js +166 -271
  1359. package/source/class/qx/ui/table/model/Simple.js +215 -250
  1360. package/source/class/qx/ui/table/pane/CellEvent.js +25 -32
  1361. package/source/class/qx/ui/table/pane/Clipper.js +8 -12
  1362. package/source/class/qx/ui/table/pane/FocusIndicator.js +42 -48
  1363. package/source/class/qx/ui/table/pane/Header.js +45 -86
  1364. package/source/class/qx/ui/table/pane/Model.js +80 -97
  1365. package/source/class/qx/ui/table/pane/Pane.js +129 -189
  1366. package/source/class/qx/ui/table/pane/Scroller.js +542 -659
  1367. package/source/class/qx/ui/table/rowrenderer/Default.js +75 -86
  1368. package/source/class/qx/ui/table/selection/Manager.js +23 -57
  1369. package/source/class/qx/ui/table/selection/Model.js +89 -179
  1370. package/source/class/qx/ui/tabview/Page.js +48 -79
  1371. package/source/class/qx/ui/tabview/TabButton.js +45 -72
  1372. package/source/class/qx/ui/tabview/TabView.js +94 -141
  1373. package/source/class/qx/ui/toolbar/Button.js +13 -18
  1374. package/source/class/qx/ui/toolbar/CheckBox.js +13 -17
  1375. package/source/class/qx/ui/toolbar/MenuButton.js +18 -34
  1376. package/source/class/qx/ui/toolbar/Part.js +42 -64
  1377. package/source/class/qx/ui/toolbar/PartContainer.js +19 -28
  1378. package/source/class/qx/ui/toolbar/RadioButton.js +12 -19
  1379. package/source/class/qx/ui/toolbar/Separator.js +15 -25
  1380. package/source/class/qx/ui/toolbar/SplitButton.js +19 -28
  1381. package/source/class/qx/ui/toolbar/ToolBar.js +182 -232
  1382. package/source/class/qx/ui/tooltip/Manager.js +125 -123
  1383. package/source/class/qx/ui/tooltip/ToolTip.js +49 -79
  1384. package/source/class/qx/ui/tooltip/__init__.js +23 -23
  1385. package/source/class/qx/ui/tree/Tree.js +95 -148
  1386. package/source/class/qx/ui/tree/TreeFile.js +8 -15
  1387. package/source/class/qx/ui/tree/TreeFolder.js +8 -15
  1388. package/source/class/qx/ui/tree/VirtualTree.js +207 -333
  1389. package/source/class/qx/ui/tree/VirtualTreeItem.js +30 -45
  1390. package/source/class/qx/ui/tree/__init__.js +50 -50
  1391. package/source/class/qx/ui/tree/core/AbstractItem.js +98 -152
  1392. package/source/class/qx/ui/tree/core/AbstractTreeItem.js +83 -137
  1393. package/source/class/qx/ui/tree/core/FolderOpenButton.js +15 -34
  1394. package/source/class/qx/ui/tree/core/IVirtualTree.js +13 -33
  1395. package/source/class/qx/ui/tree/core/IVirtualTreeDelegate.js +9 -16
  1396. package/source/class/qx/ui/tree/core/MWidgetController.js +58 -69
  1397. package/source/class/qx/ui/tree/core/OpenCloseController.js +29 -35
  1398. package/source/class/qx/ui/tree/core/Util.js +12 -16
  1399. package/source/class/qx/ui/tree/provider/IVirtualTreeProvider.js +10 -23
  1400. package/source/class/qx/ui/tree/provider/WidgetProvider.js +39 -67
  1401. package/source/class/qx/ui/tree/selection/SelectionManager.js +27 -41
  1402. package/source/class/qx/ui/treevirtual/DefaultDataCellRenderer.js +2 -3
  1403. package/source/class/qx/ui/treevirtual/MFamily.js +26 -63
  1404. package/source/class/qx/ui/treevirtual/MNode.js +43 -103
  1405. package/source/class/qx/ui/treevirtual/MTreePrimitive.js +41 -52
  1406. package/source/class/qx/ui/treevirtual/SelectionManager.js +44 -58
  1407. package/source/class/qx/ui/treevirtual/SimpleTreeDataCellRenderer.js +172 -229
  1408. package/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js +256 -367
  1409. package/source/class/qx/ui/treevirtual/SimpleTreeDataRowRenderer.js +8 -18
  1410. package/source/class/qx/ui/treevirtual/TreeVirtual.js +155 -250
  1411. package/source/class/qx/ui/treevirtual/celleditor/NodeEditor.js +10 -16
  1412. package/source/class/qx/ui/treevirtual/pane/Scroller.js +14 -11
  1413. package/source/class/qx/ui/virtual/__init__.js +4 -4
  1414. package/source/class/qx/ui/virtual/behavior/Prefetch.js +71 -86
  1415. package/source/class/qx/ui/virtual/cell/Abstract.js +18 -27
  1416. package/source/class/qx/ui/virtual/cell/AbstractImage.js +42 -51
  1417. package/source/class/qx/ui/virtual/cell/AbstractWidget.js +25 -49
  1418. package/source/class/qx/ui/virtual/cell/Boolean.js +31 -44
  1419. package/source/class/qx/ui/virtual/cell/Cell.js +143 -183
  1420. package/source/class/qx/ui/virtual/cell/CellStylesheet.js +31 -38
  1421. package/source/class/qx/ui/virtual/cell/Date.js +15 -24
  1422. package/source/class/qx/ui/virtual/cell/Html.js +9 -20
  1423. package/source/class/qx/ui/virtual/cell/ICell.js +4 -6
  1424. package/source/class/qx/ui/virtual/cell/IWidgetCell.js +7 -12
  1425. package/source/class/qx/ui/virtual/cell/IWidgetCellDelegate.js +4 -6
  1426. package/source/class/qx/ui/virtual/cell/Image.js +8 -14
  1427. package/source/class/qx/ui/virtual/cell/Number.js +14 -23
  1428. package/source/class/qx/ui/virtual/cell/String.js +11 -20
  1429. package/source/class/qx/ui/virtual/cell/WidgetCell.js +13 -16
  1430. package/source/class/qx/ui/virtual/cell/__init__.js +4 -4
  1431. package/source/class/qx/ui/virtual/core/Axis.js +75 -103
  1432. package/source/class/qx/ui/virtual/core/CellEvent.js +23 -31
  1433. package/source/class/qx/ui/virtual/core/IHtmlCellProvider.js +4 -6
  1434. package/source/class/qx/ui/virtual/core/ILayer.js +5 -15
  1435. package/source/class/qx/ui/virtual/core/IWidgetCellProvider.js +5 -7
  1436. package/source/class/qx/ui/virtual/core/Pane.js +199 -242
  1437. package/source/class/qx/ui/virtual/core/Scroller.js +25 -43
  1438. package/source/class/qx/ui/virtual/layer/Abstract.js +44 -83
  1439. package/source/class/qx/ui/virtual/layer/AbstractBackground.js +47 -68
  1440. package/source/class/qx/ui/virtual/layer/CellSpanManager.js +74 -96
  1441. package/source/class/qx/ui/virtual/layer/Column.js +26 -36
  1442. package/source/class/qx/ui/virtual/layer/GridLines.js +43 -70
  1443. package/source/class/qx/ui/virtual/layer/HtmlCell.js +34 -32
  1444. package/source/class/qx/ui/virtual/layer/HtmlCellSpan.js +54 -56
  1445. package/source/class/qx/ui/virtual/layer/Row.js +28 -36
  1446. package/source/class/qx/ui/virtual/layer/WidgetCell.js +87 -123
  1447. package/source/class/qx/ui/virtual/layer/WidgetCellSpan.js +123 -124
  1448. package/source/class/qx/ui/virtual/selection/Abstract.js +26 -54
  1449. package/source/class/qx/ui/virtual/selection/CellLines.js +11 -21
  1450. package/source/class/qx/ui/virtual/selection/CellRectangle.js +45 -73
  1451. package/source/class/qx/ui/virtual/selection/Column.js +16 -35
  1452. package/source/class/qx/ui/virtual/selection/ISelectionDelegate.js +5 -9
  1453. package/source/class/qx/ui/virtual/selection/MModel.js +84 -122
  1454. package/source/class/qx/ui/virtual/selection/Row.js +29 -61
  1455. package/source/class/qx/ui/website/Accordion.js +39 -42
  1456. package/source/class/qx/ui/website/Button.js +17 -25
  1457. package/source/class/qx/ui/website/Calendar.js +243 -172
  1458. package/source/class/qx/ui/website/Carousel.js +169 -155
  1459. package/source/class/qx/ui/website/DatePicker.js +99 -85
  1460. package/source/class/qx/ui/website/Rating.js +35 -53
  1461. package/source/class/qx/ui/website/Slider.js +174 -153
  1462. package/source/class/qx/ui/website/Table.js +482 -456
  1463. package/source/class/qx/ui/website/Tabs.js +225 -180
  1464. package/source/class/qx/ui/website/Widget.js +39 -52
  1465. package/source/class/qx/ui/window/Desktop.js +14 -12
  1466. package/source/class/qx/ui/window/IDesktop.js +8 -10
  1467. package/source/class/qx/ui/window/IWindowManager.js +7 -9
  1468. package/source/class/qx/ui/window/MDesktop.js +34 -62
  1469. package/source/class/qx/ui/window/Manager.js +31 -57
  1470. package/source/class/qx/ui/window/Window.js +250 -351
  1471. package/source/class/qx/util/AliasManager.js +23 -42
  1472. package/source/class/qx/util/Animation.js +248 -191
  1473. package/source/class/qx/util/Base64.js +144 -89
  1474. package/source/class/qx/util/ColorUtil.js +253 -287
  1475. package/source/class/qx/util/DeferredCall.js +21 -30
  1476. package/source/class/qx/util/DeferredCallManager.js +23 -44
  1477. package/source/class/qx/util/Delegate.js +4 -10
  1478. package/source/class/qx/util/DisposeUtil.js +76 -70
  1479. package/source/class/qx/util/DynamicScriptLoader.js +83 -66
  1480. package/source/class/qx/util/EditDistance.js +64 -58
  1481. package/source/class/qx/util/ExtendedColor.js +157 -163
  1482. package/source/class/qx/util/Function.js +8 -8
  1483. package/source/class/qx/util/LibraryManager.js +11 -18
  1484. package/source/class/qx/util/OOUtil.js +17 -36
  1485. package/source/class/qx/util/ObjectPool.js +19 -45
  1486. package/source/class/qx/util/Permutation.js +9 -16
  1487. package/source/class/qx/util/PropertyUtil.js +58 -70
  1488. package/source/class/qx/util/Request.js +27 -16
  1489. package/source/class/qx/util/ResourceManager.js +103 -104
  1490. package/source/class/qx/util/ResponseParser.js +14 -21
  1491. package/source/class/qx/util/RingBuffer.js +46 -48
  1492. package/source/class/qx/util/Serializer.js +103 -68
  1493. package/source/class/qx/util/StringBuilder.js +11 -22
  1494. package/source/class/qx/util/StringEscape.js +15 -29
  1495. package/source/class/qx/util/StringSplit.js +18 -21
  1496. package/source/class/qx/util/TimerManager.js +61 -70
  1497. package/source/class/qx/util/Uri.js +42 -30
  1498. package/source/class/qx/util/Uuid.js +50 -35
  1499. package/source/class/qx/util/Validate.js +88 -73
  1500. package/source/class/qx/util/ValueManager.js +17 -29
  1501. package/source/class/qx/util/Wheel.js +22 -16
  1502. package/source/class/qx/util/format/DateFormat.js +853 -763
  1503. package/source/class/qx/util/format/IFormat.js +4 -8
  1504. package/source/class/qx/util/format/NumberFormat.js +84 -91
  1505. package/source/class/qx/util/fsm/FiniteStateMachine.js +323 -382
  1506. package/source/class/qx/util/fsm/State.js +210 -249
  1507. package/source/class/qx/util/fsm/Transition.js +138 -160
  1508. package/source/class/qx/util/placement/AbstractAxis.js +12 -14
  1509. package/source/class/qx/util/placement/BestFitAxis.js +5 -8
  1510. package/source/class/qx/util/placement/DirectAxis.js +5 -7
  1511. package/source/class/qx/util/placement/KeepAlignAxis.js +8 -14
  1512. package/source/class/qx/util/placement/Placement.js +39 -56
  1513. package/source/class/qx/util/placement/__init__.js +4 -4
  1514. package/source/class/qx/xml/Document.js +21 -34
  1515. package/source/class/qx/xml/Element.js +90 -73
  1516. package/source/class/qx/xml/String.js +15 -21
  1517. package/source/class/qxWeb.js +102 -69
  1518. package/source/resource/qx/mobile/js/iscroll.js +1328 -982
  1519. package/source/resource/qx/mobile/js/iscroll.min.js +1081 -1
  1520. package/source/resource/qx/test/dynamicscriptloader/first.js +1 -1
  1521. package/source/resource/qx/test/dynamicscriptloader/second.js +1 -1
  1522. package/source/resource/qx/test/dynamicscriptloader/third.js +1 -1
  1523. package/source/resource/qx/test/script.js +1 -1
  1524. package/source/resource/qx/test/webworker.js +2 -2
  1525. package/source/resource/qx/tool/loadsass.js +16 -13
  1526. package/source/resource/qx/tool/schema/compile-1-0-0.json +13 -13
  1527. package/source/resource/qx/tool/website/build/assets/bluebird.min.js +4593 -9
  1528. package/source/resource/qx/tool/website/build/assets/buttons.js +391 -1
  1529. package/source/resource/qx/tool/website/build/assets/fontawesome-all.js +8963 -1
  1530. package/source/resource/qx/tool/website/build/assets/jquery.js +5452 -3
  1531. package/source/resource/qx/tool/website/build/diagnostics/dependson.js +31 -31
  1532. package/source/resource/qx/tool/website/build/diagnostics/requiredby.js +32 -36
  1533. package/source/resource/qx/tool/website/build/scripts/serve.js +87 -66
  1534. package/source/resource/qx/tool/website/src/assets/bluebird.min.js +4593 -9
  1535. package/source/resource/qx/tool/website/src/assets/buttons.js +391 -1
  1536. package/source/resource/qx/tool/website/src/assets/fontawesome-all.js +8963 -1
  1537. package/source/resource/qx/tool/website/src/assets/jquery.js +5452 -3
  1538. package/source/resource/qx/tool/website/src/diagnostics/dependson.js +31 -31
  1539. package/source/resource/qx/tool/website/src/diagnostics/requiredby.js +32 -36
  1540. package/source/resource/qx/tool/website/src/scripts/serve.js +87 -66
  1541. package/source/translation/hr.po +297 -0
  1542. package/lib/resource/qx/static/blank.gif +0 -0
  1543. package/source/class/qx/io/remote/Exchange.js +0 -1063
  1544. package/source/class/qx/io/remote/Request.js +0 -1021
  1545. package/source/class/qx/io/remote/RequestQueue.js +0 -521
  1546. package/source/class/qx/io/remote/Response.js +0 -137
  1547. package/source/class/qx/io/remote/Rpc.js +0 -1075
  1548. package/source/class/qx/io/remote/RpcError.js +0 -198
  1549. package/source/class/qx/io/remote/__init__.js +0 -88
  1550. package/source/class/qx/io/remote/transport/Abstract.js +0 -513
  1551. package/source/class/qx/io/remote/transport/Iframe.js +0 -652
  1552. package/source/class/qx/io/remote/transport/Script.js +0 -475
  1553. package/source/class/qx/io/remote/transport/XmlHttp.js +0 -1019
  1554. package/source/class/qx/io/remote/transport/__init__.js +0 -3
  1555. package/source/class/qx/test/io/remote/AbstractRequest.js +0 -150
  1556. package/source/class/qx/test/io/remote/RequestIframe.js +0 -105
  1557. package/source/class/qx/test/io/remote/RequestXhr.js +0 -151
  1558. package/source/class/qx/test/io/remote/Rpc.js +0 -205
  1559. package/source/class/qx/test/io/remote/__init__.js +0 -4
  1560. package/source/class/qx/test/io/remote/transport/Iframe.js +0 -67
  1561. package/source/class/qx/test/io/remote/transport/XmlHttp.js +0 -133
  1562. package/source/class/qx/test/io/remote/transport/__init__.js +0 -4
@@ -43,6 +43,9 @@ function collapseMemberExpression(node) {
43
43
  if (node.type == "ThisExpression") {
44
44
  return "this";
45
45
  }
46
+ if (node.type == "Super") {
47
+ return "super";
48
+ }
46
49
  if (node.type == "Identifier") {
47
50
  return node.name;
48
51
  }
@@ -88,11 +91,13 @@ function collapseMemberExpression(node) {
88
91
 
89
92
  function isCollapsibleLiteral(node) {
90
93
  let nodeType = node.type;
91
- return nodeType === "Literal" ||
94
+ return (
95
+ nodeType === "Literal" ||
92
96
  nodeType === "StringLiteral" ||
93
97
  nodeType === "NumericLiteral" ||
94
98
  nodeType === "BooleanLiteral" ||
95
- nodeType === "BigIntLiteral";
99
+ nodeType === "BigIntLiteral"
100
+ );
96
101
  }
97
102
 
98
103
  /**
@@ -102,7 +107,11 @@ function isCollapsibleLiteral(node) {
102
107
  */
103
108
  function expandMemberExpression(str) {
104
109
  var segs = str.split(".");
105
- var expr = types.memberExpression(types.identifier(segs[0]), types.identifier(segs[1]));
110
+ var expr = types.memberExpression(
111
+ types.identifier(segs[0]),
112
+ types.identifier(segs[1])
113
+ );
114
+
106
115
  for (var i = 2; i < segs.length; i++) {
107
116
  expr = types.memberExpression(expr, types.identifier(segs[i]));
108
117
  }
@@ -131,7 +140,7 @@ function literalValueToExpression(value) {
131
140
 
132
141
  if (qx.lang.Type.isArray(value)) {
133
142
  var arr = [];
134
- value.forEach(function(item) {
143
+ value.forEach(function (item) {
135
144
  arr.push(literalValueToExpression(item));
136
145
  });
137
146
  return types.arrayExpression(arr);
@@ -167,7 +176,6 @@ function formatValueAsCode(value) {
167
176
  return value.toString();
168
177
  }
169
178
 
170
-
171
179
  /**
172
180
  * A class file is parsed and anaysed into an instance of ClassFile; it is
173
181
  * connected to the Analyser that found the class so that dependencies can be
@@ -184,21 +192,25 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
184
192
  * @param library {Library} the Library the class belongs to (note that the class name is
185
193
  * not always enough to identify the library, eg private source files such as qxWeb.js)
186
194
  */
187
- construct: function(analyser, className, library) {
188
- this.base(arguments);
195
+ construct(analyser, className, library) {
196
+ super();
189
197
 
190
198
  this.__analyser = analyser;
191
199
  this.__className = className;
192
200
  this.__metaStack = [];
193
201
  this.__metaDefinitions = {};
194
202
  this.__library = library;
195
- this.__sourceFilename =qx.tool.compiler.ClassFile.getSourcePath(library, className);
203
+ this.__sourceFilename = qx.tool.compiler.ClassFile.getSourcePath(
204
+ library,
205
+ className
206
+ );
196
207
 
197
208
  this.__requiredClasses = {};
198
209
  this.__environmentChecks = {
199
210
  provided: {},
200
211
  required: {}
201
212
  };
213
+
202
214
  this.__requiredAssets = [];
203
215
  this.__translations = [];
204
216
  this.__markers = [];
@@ -209,15 +221,16 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
209
221
  vars: {},
210
222
  unresolved: {}
211
223
  };
224
+
212
225
  this.__externals = [];
213
226
 
214
227
  this.__taskQueueDrains = [];
215
- this.__taskQueue = async.queue(function(task, cb) {
228
+ this.__taskQueue = async.queue(function (task, cb) {
216
229
  task(cb);
217
230
  });
218
231
  this.__taskQueue.drain = this._onTaskQueueDrain;
219
232
  this.__taskQueue.error = err => {
220
- qx.tool.compiler.Console.error(err.stack||err);
233
+ qx.tool.compiler.Console.error(err.stack || err);
221
234
  };
222
235
 
223
236
  analyser.getIgnores().forEach(s => this.addIgnore(s));
@@ -227,7 +240,8 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
227
240
  this.__privateMangling = analyser.getManglePrivates();
228
241
 
229
242
  const CF = qx.tool.compiler.ClassFile;
230
- const addSymbols = arr => arr.forEach(s => this.__globalSymbols[s] = true);
243
+ const addSymbols = arr =>
244
+ arr.forEach(s => (this.__globalSymbols[s] = true));
231
245
  if (analyser.getGlobalSymbols().length) {
232
246
  addSymbols(analyser.getGlobalSymbols());
233
247
  } else {
@@ -238,7 +252,6 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
238
252
  },
239
253
 
240
254
  members: {
241
-
242
255
  __analyser: null,
243
256
  __className: null,
244
257
  __numClassesDefined: 0,
@@ -269,15 +282,15 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
269
282
  __blockedPrivates: null,
270
283
  __externals: null,
271
284
 
272
- _onTaskQueueDrain: function() {
285
+ _onTaskQueueDrain() {
273
286
  var cbs = this.__taskQueueDrain;
274
287
  this.__taskQueueDrain = [];
275
- cbs.forEach(function(cb) {
288
+ cbs.forEach(function (cb) {
276
289
  cb();
277
290
  });
278
291
  },
279
292
 
280
- _waitForTaskQueueDrain: function(cb) {
293
+ _waitForTaskQueueDrain(cb) {
281
294
  if (this.__taskQueue.length() == 0) {
282
295
  cb();
283
296
  } else {
@@ -285,7 +298,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
285
298
  }
286
299
  },
287
300
 
288
- _queueTask: function(cb) {
301
+ _queueTask(cb) {
289
302
  this.__taskQueue.push(cb);
290
303
  },
291
304
 
@@ -293,7 +306,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
293
306
  * Returns the absolute path to the class file
294
307
  * @returns {string}
295
308
  */
296
- getSourcePath: function() {
309
+ getSourcePath() {
297
310
  return this.__sourceFilename;
298
311
  },
299
312
 
@@ -301,8 +314,11 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
301
314
  * Returns the path to the rewritten class file
302
315
  * @returns {string}
303
316
  */
304
- getOutputPath: function() {
305
- return qx.tool.compiler.ClassFile.getOutputPath(this.__analyser, this.__className);
317
+ getOutputPath() {
318
+ return qx.tool.compiler.ClassFile.getOutputPath(
319
+ this.__analyser,
320
+ this.__className
321
+ );
306
322
  },
307
323
 
308
324
  /**
@@ -311,118 +327,161 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
311
327
  * @param callback
312
328
  * {Function} callback for when the load is completed
313
329
  */
314
- load: function(callback) {
330
+ load(callback) {
315
331
  var t = this;
316
332
  var className = this.__className;
317
333
  t.__fatalCompileError = false;
318
334
  t.__numClassesDefined = 0;
319
335
 
320
- fs.readFile(this.getSourcePath(), {encoding: "utf-8"}, function(err, src) {
321
- if (err) {
322
- callback(err);
323
- return;
324
- }
325
- var result;
326
- try {
327
- let babelConfig = t.__analyser.getBabelConfig() || {};
328
- let options = qx.lang.Object.clone(babelConfig.options || {}, true);
329
- options.modules = false;
330
- let extraPreset = [
331
- {
332
- plugins: []
333
- }
334
- ];
335
- if (babelConfig.plugins) {
336
- for (let key in babelConfig.plugins) {
337
- if (babelConfig.plugins[key] === true) {
338
- extraPreset[0].plugins.push(require.resolve(key));
339
- } else if (babelConfig.plugins[key]) {
340
- extraPreset[0].plugins.push([ require.resolve(key), babelConfig.plugins[key] ]);
341
- }
342
- }
336
+ fs.readFile(
337
+ this.getSourcePath(),
338
+ { encoding: "utf-8" },
339
+ function (err, src) {
340
+ if (err) {
341
+ callback(err);
342
+ return;
343
343
  }
344
- let myPlugins = t._babelClassPlugins();
345
- var config = {
346
- babelrc: false,
347
- sourceFileName : t.getSourcePath(),
348
- filename: t.getSourcePath(),
349
- sourceMaps: true,
350
- "presets": [
351
- [
352
- {
353
- plugins: [ myPlugins.CodeElimination ]
354
- }
355
- ],
356
- [
357
- {
358
- plugins: [ myPlugins.Compiler ]
344
+ var result;
345
+ try {
346
+ let babelConfig = t.__analyser.getBabelConfig() || {};
347
+ let options = qx.lang.Object.clone(babelConfig.options || {}, true);
348
+ options.modules = false;
349
+ let extraPreset = [
350
+ {
351
+ plugins: []
352
+ }
353
+ ];
354
+
355
+ if (babelConfig.plugins) {
356
+ for (let key in babelConfig.plugins) {
357
+ if (babelConfig.plugins[key] === true) {
358
+ extraPreset[0].plugins.push(require.resolve(key));
359
+ } else if (babelConfig.plugins[key]) {
360
+ extraPreset[0].plugins.push([
361
+ require.resolve(key),
362
+ babelConfig.plugins[key]
363
+ ]);
359
364
  }
365
+ }
366
+ }
367
+ let myPlugins = t._babelClassPlugins();
368
+ var config = {
369
+ babelrc: false,
370
+ sourceFileName: t.getSourcePath(),
371
+ filename: t.getSourcePath(),
372
+ sourceMaps: true,
373
+ presets: [
374
+ [
375
+ {
376
+ plugins: [myPlugins.CodeElimination]
377
+ }
378
+ ],
379
+
380
+ [
381
+ {
382
+ plugins: [myPlugins.Compiler]
383
+ }
384
+ ],
385
+
386
+ [require.resolve("@babel/preset-env"), options],
387
+ [require.resolve("@babel/preset-typescript")],
388
+ [
389
+ require.resolve("@babel/preset-react"),
390
+ qx.tool.compiler.ClassFile.JSX_OPTIONS
391
+ ]
360
392
  ],
361
- [ require.resolve("@babel/preset-env"), options],
362
- [ require.resolve("@babel/preset-typescript") ],
363
- [ require.resolve("@babel/preset-react"), qx.tool.compiler.ClassFile.JSX_OPTIONS ]
364
- ],
365
- parserOpts: { sourceType: "script" },
366
- passPerPreset: true
367
- };
368
- if (extraPreset[0].plugins.length) {
369
- config.presets.push(extraPreset);
370
- }
371
- if (this.__privateMangling == "unreadable") {
372
- config.blacklist = [ "spec.functionName" ];
373
- }
374
- result = babelCore.transform(src, config);
375
- } catch (ex) {
376
- qx.tool.compiler.Console.log(ex);
377
- t.addMarker("compiler.syntaxError", ex.loc, ex.message);
378
- t.__fatalCompileError = true;
379
- t._compileDbClassInfo();
380
- callback();
381
- return;
382
- }
393
+ generatorOpts: {
394
+ compact: false
395
+ },
383
396
 
384
- if (!t.__numClassesDefined) {
385
- t.addMarker("compiler.missingClassDef");
386
- t.__fatalCompileError = true;
387
- t._compileDbClassInfo();
388
- callback();
389
- return;
390
- }
397
+ parserOpts: {
398
+ allowSuperOutsideMethod: true,
399
+ sourceType: "script"
400
+ },
391
401
 
392
- if (!t.__metaDefinitions[className]) {
393
- t.addMarker("compiler.wrongClassName", null, className, Object.keys(t.__metaDefinitions).join(", "));
394
- t._compileDbClassInfo();
395
- }
402
+ passPerPreset: true
403
+ };
396
404
 
397
- var pos = className.lastIndexOf(".");
398
- var name = pos > -1 ? className.substring(pos + 1) : className;
399
- var outputPath = t.getOutputPath();
400
- qx.tool.utils.Utils.mkParentPath(outputPath, function(err) {
401
- if (err) {
402
- callback(err);
405
+ if (extraPreset[0].plugins.length) {
406
+ config.presets.push(extraPreset);
407
+ }
408
+ if (this.__privateMangling == "unreadable") {
409
+ config.blacklist = ["spec.functionName"];
410
+ }
411
+ result = babelCore.transform(src, config);
412
+ } catch (ex) {
413
+ qx.tool.compiler.Console.log(ex);
414
+ t.addMarker("compiler.syntaxError", ex.loc, ex.message);
415
+ t.__fatalCompileError = true;
416
+ t._compileDbClassInfo();
417
+ callback();
403
418
  return;
404
419
  }
405
- let mappingUrl = name + ".js.map";
406
- if (qx.lang.Array.contains(t.__analyser.getApplicationTypes(), "browser")) {
407
- mappingUrl += "?dt=" + (new Date().getTime());
420
+
421
+ if (!t.__numClassesDefined) {
422
+ t.addMarker("compiler.missingClassDef");
423
+ t.__fatalCompileError = true;
424
+ t._compileDbClassInfo();
425
+ callback();
426
+ return;
408
427
  }
409
- fs.writeFile(outputPath, result.code + "\n\n//# sourceMappingURL=" + mappingUrl, {encoding: "utf-8"}, function(err) {
428
+
429
+ if (!t.__metaDefinitions[className]) {
430
+ t.addMarker(
431
+ "compiler.wrongClassName",
432
+ null,
433
+ className,
434
+ Object.keys(t.__metaDefinitions).join(", ")
435
+ );
436
+
437
+ t._compileDbClassInfo();
438
+ }
439
+
440
+ var pos = className.lastIndexOf(".");
441
+ var name = pos > -1 ? className.substring(pos + 1) : className;
442
+ var outputPath = t.getOutputPath();
443
+ qx.tool.utils.Utils.mkParentPath(outputPath, function (err) {
410
444
  if (err) {
411
445
  callback(err);
412
446
  return;
413
447
  }
414
- fs.writeFile(outputPath + ".map", JSON.stringify(result.map, null, 2), {encoding: "utf-8"}, function(err) {
415
- if (err) {
416
- callback(err);
417
- return;
448
+ let mappingUrl = name + ".js.map";
449
+ if (
450
+ qx.lang.Array.contains(
451
+ t.__analyser.getApplicationTypes(),
452
+ "browser"
453
+ )
454
+ ) {
455
+ mappingUrl += "?dt=" + new Date().getTime();
456
+ }
457
+ fs.writeFile(
458
+ outputPath,
459
+ result.code + "\n\n//# sourceMappingURL=" + mappingUrl,
460
+ { encoding: "utf-8" },
461
+ function (err) {
462
+ if (err) {
463
+ callback(err);
464
+ return;
465
+ }
466
+ fs.writeFile(
467
+ outputPath + ".map",
468
+ JSON.stringify(result.map, null, 2),
469
+ { encoding: "utf-8" },
470
+ function (err) {
471
+ if (err) {
472
+ callback(err);
473
+ return;
474
+ }
475
+ t._waitForTaskQueueDrain(function () {
476
+ callback();
477
+ });
478
+ }
479
+ );
418
480
  }
419
- t._waitForTaskQueueDrain(function() {
420
- callback();
421
- });
422
- });
481
+ );
423
482
  });
424
- });
425
- });
483
+ }
484
+ );
426
485
  },
427
486
 
428
487
  /**
@@ -430,7 +489,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
430
489
  * used (so needs to be zero'd out)
431
490
  * @param dbClassInfo {Map}
432
491
  */
433
- writeDbInfo: function(dbClassInfo) {
492
+ writeDbInfo(dbClassInfo) {
434
493
  delete dbClassInfo.unresolved;
435
494
  delete dbClassInfo.dependsOn;
436
495
  delete dbClassInfo.assets;
@@ -445,9 +504,9 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
445
504
  /**
446
505
  * Compiles the DbInfo POJO to be stored in the database about this class
447
506
  * */
448
- _compileDbClassInfo: function() {
507
+ _compileDbClassInfo() {
449
508
  var t = this;
450
- var dbClassInfo = this.__dbClassInfo = {};
509
+ var dbClassInfo = (this.__dbClassInfo = {});
451
510
 
452
511
  // Collect the dependencies on other classes
453
512
  var deps = this.getRequiredClasses();
@@ -518,13 +577,17 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
518
577
  }
519
578
 
520
579
  // Environment Checks
521
- if (Object.keys(this.__environmentChecks.provided).length || Object.keys(this.__environmentChecks.required).length) {
580
+ if (
581
+ Object.keys(this.__environmentChecks.provided).length ||
582
+ Object.keys(this.__environmentChecks.required).length
583
+ ) {
522
584
  dbClassInfo.environment = { provided: [], required: {} };
523
585
  for (let key in this.__environmentChecks.provided) {
524
586
  dbClassInfo.environment.provided.push(key);
525
587
  }
526
588
  for (let key in this.__environmentChecks.required) {
527
- dbClassInfo.environment.required[key] = this.__environmentChecks.required[key];
589
+ dbClassInfo.environment.required[key] =
590
+ this.__environmentChecks.required[key];
528
591
  }
529
592
  }
530
593
 
@@ -545,13 +608,20 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
545
608
  }
546
609
  var info = t.__analyser.getSymbolType(name);
547
610
  if (info && info.className) {
548
- t._requireClass(info.className, { load: item.load, defer: item.defer });
611
+ t._requireClass(info.className, {
612
+ load: item.load,
613
+ defer: item.defer
614
+ });
549
615
  } else if (info && info.symbolType == "package") {
550
616
  t.deleteReference(name);
551
617
  } else {
552
618
  dbClassInfo.unresolved.push(item);
553
619
  for (var j = 0; j < item.locations.length; j++) {
554
- t.addMarker("symbol.unresolved#" + name, item.locations[j].start, name);
620
+ t.addMarker(
621
+ "symbol.unresolved#" + name,
622
+ item.locations[j].start,
623
+ name
624
+ );
555
625
  }
556
626
  }
557
627
  }
@@ -603,20 +673,22 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
603
673
  /**
604
674
  * Returns the loaded meta data
605
675
  */
606
- getOuterClassMeta: function() {
607
- let src = this.__metaDefinitions[this.__className]||null;
676
+ getOuterClassMeta() {
677
+ let src = this.__metaDefinitions[this.__className] || null;
608
678
  if (!src) {
609
679
  return src;
610
680
  }
611
681
  let dest = {};
612
- Object.keys(src).filter(key => key[0] != "_").forEach(key => dest[key] = src[key]);
682
+ Object.keys(src)
683
+ .filter(key => key[0] != "_")
684
+ .forEach(key => (dest[key] = src[key]));
613
685
  return dest;
614
686
  },
615
687
 
616
688
  /**
617
689
  * Babel plugin
618
690
  */
619
- _babelClassPlugins: function() {
691
+ _babelClassPlugins() {
620
692
  var t = this;
621
693
 
622
694
  function getKeyName(key) {
@@ -637,33 +709,41 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
637
709
  return jsdoc;
638
710
  }
639
711
  if (jsdoc["@use"]) {
640
- jsdoc["@use"].forEach(function(elem) {
641
- t._requireClass(elem.body, { where: "use", load: false, location: loc });
712
+ jsdoc["@use"].forEach(function (elem) {
713
+ t._requireClass(elem.body, {
714
+ where: "use",
715
+ load: false,
716
+ location: loc
717
+ });
642
718
  });
643
719
  }
644
720
  if (jsdoc["@require"]) {
645
- jsdoc["@require"].forEach(function(elem) {
646
- t._requireClass(elem.body, { where: "require", load: false, location: loc });
721
+ jsdoc["@require"].forEach(function (elem) {
722
+ t._requireClass(elem.body, {
723
+ where: "require",
724
+ load: false,
725
+ location: loc
726
+ });
647
727
  });
648
728
  }
649
729
  if (jsdoc["@optional"]) {
650
- jsdoc["@optional"].forEach(function(elem) {
730
+ jsdoc["@optional"].forEach(function (elem) {
651
731
  t.addIgnore(elem.body);
652
732
  });
653
733
  }
654
734
  if (jsdoc["@ignore"]) {
655
- jsdoc["@ignore"].forEach(function(elem) {
735
+ jsdoc["@ignore"].forEach(function (elem) {
656
736
  t.addIgnore(elem.body);
657
737
  });
658
738
  }
659
739
  if (jsdoc["@external"]) {
660
- jsdoc["@external"].forEach(function(elem) {
740
+ jsdoc["@external"].forEach(function (elem) {
661
741
  t.addExternal(elem.body);
662
742
  t._requireAsset(elem.body);
663
743
  });
664
744
  }
665
745
  if (jsdoc["@asset"]) {
666
- jsdoc["@asset"].forEach(function(elem) {
746
+ jsdoc["@asset"].forEach(function (elem) {
667
747
  t._requireAsset(elem.body);
668
748
  });
669
749
  }
@@ -674,7 +754,8 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
674
754
  node = node || path.node;
675
755
  idNode = idNode || node.id || null;
676
756
 
677
- let isClassMember = t.__classMeta &&
757
+ let isClassMember =
758
+ t.__classMeta &&
678
759
  t.__classMeta._topLevel &&
679
760
  t.__classMeta._topLevel.keyName == "members" &&
680
761
  path.parentPath.parentPath.parentPath == t.__classMeta._topLevel.path;
@@ -705,7 +786,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
705
786
  }
706
787
 
707
788
  function exitFunction(path, node) {
708
- node = node||path.node;
789
+ node = node || path.node;
709
790
  t.popScope(node);
710
791
  }
711
792
 
@@ -764,7 +845,10 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
764
845
  }
765
846
 
766
847
  if (sectionName === "members" || sectionName === "statics") {
767
- if (node.type == "ObjectMethod" || node.value.type === "FunctionExpression") {
848
+ if (
849
+ node.type == "ObjectMethod" ||
850
+ node.value.type === "FunctionExpression"
851
+ ) {
768
852
  meta.type = "function";
769
853
  } else {
770
854
  meta.type = "variable";
@@ -780,7 +864,9 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
780
864
  return meta;
781
865
  }
782
866
 
867
+ var es6ClassDeclarations = 0;
783
868
  var needsQxCoreEnvironment = false;
869
+
784
870
  var COLLECT_CLASS_NAMES_VISITOR = {
785
871
  MemberExpression(path) {
786
872
  var self = this;
@@ -794,11 +880,23 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
794
880
  };
795
881
 
796
882
  const CODE_ELIMINATION_VISITOR = {
883
+ ClassBody: {
884
+ enter(path) {
885
+ es6ClassDeclarations++;
886
+ },
887
+ exit(path) {
888
+ es6ClassDeclarations--;
889
+ }
890
+ },
891
+
797
892
  CallExpression(path) {
798
893
  const name = collapseMemberExpression(path.node.callee);
799
894
 
800
- if ((name === "qx.core.Environment.select" || name === "qx.core.Environment.get") &&
801
- types.isLiteral(path.node.arguments[0])) {
895
+ if (
896
+ (name === "qx.core.Environment.select" ||
897
+ name === "qx.core.Environment.get") &&
898
+ types.isLiteral(path.node.arguments[0])
899
+ ) {
802
900
  const arg = path.node.arguments[0];
803
901
  const env = t.__analyser.getEnvironment();
804
902
  const envValue = env[arg.value];
@@ -810,10 +908,15 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
810
908
  return;
811
909
  } else if (name === "qx.core.Environment.select") {
812
910
  const subPath = path.get("arguments.1");
813
- let option = subPath.node.properties.find(prop => prop.key.value === envValue.toString());
814
-
815
- if (!option) { // try to find default value
816
- option = subPath.node.properties.find(prop => prop.key.value === "default");
911
+ let option = subPath.node.properties.find(
912
+ prop => prop.key.value === envValue.toString()
913
+ );
914
+
915
+ if (!option) {
916
+ // try to find default value
917
+ option = subPath.node.properties.find(
918
+ prop => prop.key.value === "default"
919
+ );
817
920
  }
818
921
 
819
922
  if (option) {
@@ -851,8 +954,12 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
851
954
  exit(path) {
852
955
  let node = path.node;
853
956
  if (types.isLiteral(node.left) && types.isLiteral(node.right)) {
854
- let result = (node.operator == "&&" && node.left.value && node.right.value) ||
855
- (node.operator == "||" && (node.left.value || node.right.value));
957
+ let result =
958
+ (node.operator == "&&" &&
959
+ node.left.value &&
960
+ node.right.value) ||
961
+ (node.operator == "||" &&
962
+ (node.left.value || node.right.value));
856
963
  path.replaceWith(literalValueToExpression(result));
857
964
  }
858
965
  }
@@ -861,7 +968,10 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
861
968
  BinaryExpression: {
862
969
  exit(path) {
863
970
  let node = path.node;
864
- if (isCollapsibleLiteral(node.left) && isCollapsibleLiteral(node.right)) {
971
+ if (
972
+ isCollapsibleLiteral(node.left) &&
973
+ isCollapsibleLiteral(node.right)
974
+ ) {
865
975
  if ("+-*/".indexOf(node.operator) > -1) {
866
976
  let result;
867
977
  switch (node.operator) {
@@ -878,6 +988,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
878
988
  result = node.left.value * node.right.value;
879
989
  break;
880
990
  }
991
+
881
992
  path.skip();
882
993
  path.replaceWithSourceString(formatValueAsCode(result));
883
994
  } else {
@@ -896,6 +1007,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
896
1007
  result = node.left.value !== node.right.value;
897
1008
  break;
898
1009
  }
1010
+
899
1011
  if (result !== undefined) {
900
1012
  path.replaceWith(types.booleanLiteral(Boolean(result)));
901
1013
  }
@@ -906,7 +1018,10 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
906
1018
 
907
1019
  UnaryExpression: {
908
1020
  exit(path) {
909
- if (path.node.operator === "!" && types.isLiteral(path.node.argument)) {
1021
+ if (
1022
+ path.node.operator === "!" &&
1023
+ types.isLiteral(path.node.argument)
1024
+ ) {
910
1025
  path.replaceWith(types.booleanLiteral(!path.node.argument.value));
911
1026
  }
912
1027
  }
@@ -919,19 +1034,35 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
919
1034
  if (node.type == "ObjectExpression") {
920
1035
  result = {};
921
1036
  let nextJsonPath = jsonPath ? jsonPath + "." : "";
922
- node.properties.forEach(function(prop) {
1037
+ node.properties.forEach(function (prop) {
923
1038
  var key = prop.key.name;
924
- var value = collectJson(prop.value, isProperties, nextJsonPath + key);
925
- result[key] = value;
1039
+ if (prop.type == "ObjectMethod") {
1040
+ result[key] = "[[ ObjectMethod Function ]]";
1041
+ } else {
1042
+ var value = collectJson(
1043
+ prop.value,
1044
+ isProperties,
1045
+ nextJsonPath + key
1046
+ );
1047
+
1048
+ result[key] = value;
1049
+ }
926
1050
  });
927
- } else if (node.type == "Literal" ||
928
- node.type == "StringLiteral" ||
929
- node.type == "BooleanLiteral" ||
930
- node.type == "NumericLiteral" ||
931
- node.type == "NullLiteral") {
1051
+ } else if (
1052
+ node.type == "Literal" ||
1053
+ node.type == "StringLiteral" ||
1054
+ node.type == "BooleanLiteral" ||
1055
+ node.type == "NumericLiteral" ||
1056
+ node.type == "NullLiteral"
1057
+ ) {
932
1058
  if (typeof node.value == "string") {
933
1059
  let isIdentifier = false;
934
- if (isProperties && (jsonPath === "apply" || jsonPath === "transform" || jsonPath === "isEqual")) {
1060
+ if (
1061
+ isProperties &&
1062
+ (jsonPath === "apply" ||
1063
+ jsonPath === "transform" ||
1064
+ jsonPath === "isEqual")
1065
+ ) {
935
1066
  isIdentifier = true;
936
1067
  }
937
1068
  node.value = t.encodePrivate(node.value, isIdentifier, node.loc);
@@ -939,13 +1070,17 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
939
1070
  result = node.value;
940
1071
  } else if (node.type == "ArrayExpression") {
941
1072
  result = [];
942
- node.elements.forEach(function(elem) {
1073
+ node.elements.forEach(function (elem) {
943
1074
  result.push(collectJson(elem, isProperties));
944
1075
  });
945
1076
  } else if (node.type == "Identifier") {
946
1077
  node.name = t.encodePrivate(node.name, true, node.loc);
947
1078
  result = node.name;
948
- } else if (node.type == "CallExpression" || node.type == "FunctionExpression" || node.type == "ArrowFunctionExpression") {
1079
+ } else if (
1080
+ node.type == "CallExpression" ||
1081
+ node.type == "FunctionExpression" ||
1082
+ node.type == "ArrowFunctionExpression"
1083
+ ) {
949
1084
  result = new Function("[[ Function ]]");
950
1085
  } else if (node.type == "MemberExpression") {
951
1086
  result = collapseMemberExpression(node);
@@ -962,87 +1097,105 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
962
1097
  }
963
1098
  }
964
1099
  result = "[[ UnaryExpression ]]";
965
- } else if (node.type == "NewExpression" || node.type == "BinaryExpression") {
1100
+ } else if (
1101
+ node.type == "NewExpression" ||
1102
+ node.type == "BinaryExpression"
1103
+ ) {
966
1104
  result = "[[ " + node.type + " ]]";
967
1105
  } else {
968
- t.warn("Cannot interpret AST " + node.type + " at " + t.__className +
969
- (node.loc ? " [" + node.loc.start.line + "," + node.loc.start.column + "]" : ""));
1106
+ t.warn(
1107
+ "Cannot interpret AST " +
1108
+ node.type +
1109
+ " at " +
1110
+ t.__className +
1111
+ (node.loc
1112
+ ? " [" + node.loc.start.line + "," + node.loc.start.column + "]"
1113
+ : "")
1114
+ );
1115
+
970
1116
  result = null;
971
1117
  }
972
1118
  return result;
973
1119
  }
974
1120
 
975
1121
  const ALLOWED_KEYS = {
976
- "class": {
977
- "static": {
978
- "@" : "object",
979
- "type" : "string", // String
980
- "statics" : "object", // Map
981
- "environment" : "object", // Map
982
- "defer" : "function" // Function
1122
+ class: {
1123
+ static: {
1124
+ "@": "object",
1125
+ type: "string", // String
1126
+ statics: "object", // Map
1127
+ environment: "object", // Map
1128
+ defer: "function" // Function
983
1129
  },
984
- "normal": {
985
- "@" : "object",
986
- "@construct" : "object",
987
- "@destruct" : "object",
988
- "type" : "string", // String
989
- "extend" : "function", // Function
990
- "implement" : "object", // Interface[]
991
- "include" : "object", // Mixin[]
992
- "construct" : "function", // Function
993
- "statics" : "object", // Map
994
- "properties" : "object", // Map
995
- "members" : "object", // Map
996
- "environment": "object", // Map
997
- "events" : "object", // Map
998
- "defer" : "function", // Function
999
- "destruct" : "function" // Function
1130
+ normal: {
1131
+ "@": "object",
1132
+ "@construct": "object",
1133
+ "@destruct": "object",
1134
+ type: "string", // String
1135
+ extend: "function", // Function
1136
+ implement: "object", // Interface[]
1137
+ include: "object", // Mixin[]
1138
+ construct: "function", // Function
1139
+ statics: "object", // Map
1140
+ properties: "object", // Map
1141
+ members: "object", // Map
1142
+ environment: "object", // Map
1143
+ events: "object", // Map
1144
+ defer: "function", // Function
1145
+ destruct: "function" // Function
1000
1146
  }
1001
1147
  },
1002
- "interface": {
1003
- "extend" : "object", // Interface | Interface[]
1004
- "statics" : "object", // Map
1005
- "members" : "object", // Map
1006
- "properties" : "object", // Map
1007
- "events" : "object" // Map
1148
+
1149
+ interface: {
1150
+ extend: "object", // Interface | Interface[]
1151
+ statics: "object", // Map
1152
+ members: "object", // Map
1153
+ properties: "object", // Map
1154
+ events: "object" // Map
1008
1155
  },
1009
- "mixin": {
1010
- "include" : "object", // Mixin | Mixin[]
1011
- "statics" : "object", // Map
1012
- "members" : "object", // Map
1013
- "properties" : "object", // Map
1014
- "events" : "object", // Map
1015
- "destruct" : "function", // Function
1016
- "construct" : "function" // Function
1156
+ mixin: {
1157
+ include: "object", // Mixin | Mixin[]
1158
+ statics: "object", // Map
1159
+ members: "object", // Map
1160
+ properties: "object", // Map
1161
+ events: "object", // Map
1162
+ destruct: "function", // Function
1163
+ construct: "function" // Function
1017
1164
  },
1018
- "theme": {
1019
- "title" : "string", // String
1020
- "aliases" : "object", // Map
1021
- "type" : "string", // String
1022
- "extend" : "object", // Theme
1023
- "colors" : "object", // Map
1024
- "borders" : "object", // Map
1025
- "decorations" : "object", // Map
1026
- "fonts" : "object", // Map
1027
- "icons" : "object", // Map
1028
- "widgets" : "object", // Map
1029
- "appearances" : "object", // Map
1030
- "meta" : "object", // Map
1031
- "include" : "object", // Array
1032
- "patch" : "object", // Array
1033
- "boot" : "function" // Function
1165
+ theme: {
1166
+ title: "string", // String
1167
+ aliases: "object", // Map
1168
+ type: "string", // String
1169
+ extend: "object", // Theme
1170
+ colors: "object", // Map
1171
+ borders: "object", // Map
1172
+ decorations: "object", // Map
1173
+ fonts: "object", // Map
1174
+ icons: "object", // Map
1175
+ widgets: "object", // Map
1176
+ appearances: "object", // Map
1177
+ meta: "object", // Map
1178
+ include: "object", // Array
1179
+ patch: "object", // Array
1180
+ boot: "function" // Function
1034
1181
  }
1035
1182
  };
1036
1183
 
1037
1184
  function isValidExtendClause(prop) {
1038
- if (prop.value.type == "MemberExpression" || prop.value.type == "Identifier" || prop.value.type == "NullLiteral") {
1185
+ if (
1186
+ prop.value.type == "MemberExpression" ||
1187
+ prop.value.type == "Identifier" ||
1188
+ prop.value.type == "NullLiteral"
1189
+ ) {
1039
1190
  return true;
1040
1191
  }
1041
1192
  if (t.__classMeta.type === "class") {
1042
1193
  return false;
1043
1194
  }
1044
1195
  if (prop.value.type == "ArrayExpression") {
1045
- return prop.value.elements.every(elem => elem.type == "MemberExpression" || elem.type == "Identifier");
1196
+ return prop.value.elements.every(
1197
+ elem => elem.type == "MemberExpression" || elem.type == "Identifier"
1198
+ );
1046
1199
  }
1047
1200
  return false;
1048
1201
  }
@@ -1052,15 +1205,22 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1052
1205
  destruct: "$$destructor",
1053
1206
  defer: null
1054
1207
  };
1208
+
1055
1209
  function checkValidTopLevel(path) {
1056
1210
  var prop = path.node;
1057
1211
  var keyName = getKeyName(prop.key);
1058
1212
  let allowedKeys = ALLOWED_KEYS[t.__classMeta.type];
1059
1213
  if (t.__classMeta.type === "class") {
1060
- allowedKeys = allowedKeys[t.__classMeta.isStatic ? "static" : "normal"];
1214
+ allowedKeys =
1215
+ allowedKeys[t.__classMeta.isStatic ? "static" : "normal"];
1061
1216
  }
1062
1217
  if (allowedKeys[keyName] === undefined) {
1063
- t.addMarker("compiler.invalidClassDefinitionEntry", prop.loc, t.__classMeta.type, keyName);
1218
+ t.addMarker(
1219
+ "compiler.invalidClassDefinitionEntry",
1220
+ prop.loc,
1221
+ t.__classMeta.type,
1222
+ keyName
1223
+ );
1064
1224
  }
1065
1225
  }
1066
1226
  function handleTopLevelMethods(path, keyName, functionNode) {
@@ -1068,7 +1228,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1068
1228
  t.__hasDefer = true;
1069
1229
  t.__inDefer = true;
1070
1230
  }
1071
- t.__classMeta.functionName = FUNCTION_NAMES[keyName]||keyName;
1231
+ t.__classMeta.functionName = FUNCTION_NAMES[keyName] || keyName;
1072
1232
  if (FUNCTION_NAMES[keyName] !== undefined) {
1073
1233
  makeMeta(keyName, null, functionNode);
1074
1234
  }
@@ -1080,6 +1240,15 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1080
1240
  }
1081
1241
 
1082
1242
  var CLASS_DEF_VISITOR = {
1243
+ ClassBody: {
1244
+ enter(path) {
1245
+ es6ClassDeclarations++;
1246
+ },
1247
+ exit(path) {
1248
+ es6ClassDeclarations--;
1249
+ }
1250
+ },
1251
+
1083
1252
  ObjectMethod(path) {
1084
1253
  if (path.parentPath.parentPath != this.classDefPath) {
1085
1254
  path.skip();
@@ -1103,7 +1272,10 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1103
1272
 
1104
1273
  if (FUNCTION_NAMES[keyName] !== undefined) {
1105
1274
  let val = path.node.value;
1106
- val.leadingComments = (path.node.leadingComments || []).concat(val.leadingComments || []);
1275
+ val.leadingComments = (path.node.leadingComments || []).concat(
1276
+ val.leadingComments || []
1277
+ );
1278
+
1107
1279
  handleTopLevelMethods(path, keyName, val);
1108
1280
  return;
1109
1281
  }
@@ -1114,45 +1286,61 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1114
1286
  t.__fatalCompileError = true;
1115
1287
  } else {
1116
1288
  t.__classMeta.superClass = collapseMemberExpression(prop.value);
1117
- t._requireClass(t.__classMeta.superClass, { location: path.node.loc });
1289
+ t._requireClass(t.__classMeta.superClass, {
1290
+ location: path.node.loc
1291
+ });
1118
1292
  }
1119
-
1120
1293
  } else if (keyName == "type") {
1121
1294
  var type = prop.value.value;
1122
1295
  t.__classMeta.isAbstract = type === "abstract";
1123
1296
  t.__classMeta.isStatic = type === "static";
1124
1297
  t.__classMeta.isSingleton = type === "singleton";
1125
-
1126
1298
  } else if (keyName == "implement") {
1127
1299
  path.skip();
1128
- path.traverse(COLLECT_CLASS_NAMES_VISITOR, { collectedClasses: t.__classMeta.interfaces });
1129
-
1300
+ path.traverse(COLLECT_CLASS_NAMES_VISITOR, {
1301
+ collectedClasses: t.__classMeta.interfaces
1302
+ });
1130
1303
  } else if (keyName == "include") {
1131
1304
  path.skip();
1132
- path.traverse(COLLECT_CLASS_NAMES_VISITOR, { collectedClasses: t.__classMeta.mixins });
1133
-
1134
- } else if (keyName == "members" || keyName == "statics" || keyName == "@") {
1305
+ path.traverse(COLLECT_CLASS_NAMES_VISITOR, {
1306
+ collectedClasses: t.__classMeta.mixins
1307
+ });
1308
+ } else if (
1309
+ keyName == "members" ||
1310
+ keyName == "statics" ||
1311
+ keyName == "@"
1312
+ ) {
1135
1313
  t.__classMeta._topLevel = {
1136
1314
  path,
1137
1315
  keyName
1138
1316
  };
1317
+
1139
1318
  path.skip();
1140
1319
  path.traverse(VISITOR);
1141
1320
  t.__classMeta._topLevel = null;
1142
-
1143
1321
  } else if (keyName == "properties") {
1144
1322
  path.skip();
1145
1323
  if (!prop.value.properties) {
1146
- t.addMarker("class.invalidProperties", prop.loc||null);
1324
+ t.addMarker("class.invalidProperties", prop.loc || null);
1147
1325
  } else {
1148
- prop.value.properties.forEach(function(pdNode) {
1326
+ prop.value.properties.forEach(function (pdNode) {
1149
1327
  var propName = getKeyName(pdNode.key);
1150
1328
  var meta = makeMeta("properties", propName, pdNode);
1151
1329
  var data = collectJson(pdNode.value, true);
1152
1330
  meta.name = propName;
1153
1331
  meta.propertyType = "new";
1154
- [ "refine", "themeable", "event", "inheritable", "apply", "async", "group", "nullable", "init", "transform" ]
1155
- .forEach(name => meta[name] = data[name]);
1332
+ [
1333
+ "refine",
1334
+ "themeable",
1335
+ "event",
1336
+ "inheritable",
1337
+ "apply",
1338
+ "async",
1339
+ "group",
1340
+ "nullable",
1341
+ "init",
1342
+ "transform"
1343
+ ].forEach(name => (meta[name] = data[name]));
1156
1344
  if (data.nullable !== undefined) {
1157
1345
  meta.allowNull = data.nullable;
1158
1346
  }
@@ -1169,11 +1357,10 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1169
1357
  });
1170
1358
  }
1171
1359
  path.traverse(VISITOR);
1172
-
1173
1360
  } else if (keyName == "events") {
1174
1361
  path.skip();
1175
1362
  if (prop.value.properties) {
1176
- prop.value.properties.forEach(function(eventNode) {
1363
+ prop.value.properties.forEach(function (eventNode) {
1177
1364
  var eventName = getKeyName(eventNode.key);
1178
1365
  var meta = makeMeta("events", eventName, eventNode);
1179
1366
  meta.name = eventName;
@@ -1181,29 +1368,27 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1181
1368
  });
1182
1369
  }
1183
1370
  path.traverse(VISITOR);
1184
-
1185
1371
  } else if (keyName == "aliases") {
1186
1372
  path.skip();
1187
1373
  if (!prop.value.properties) {
1188
- t.addMarker("class.invalidAliases", prop.loc||null);
1374
+ t.addMarker("class.invalidAliases", prop.loc || null);
1189
1375
  } else {
1190
1376
  var meta = makeMeta("aliases", null, prop);
1191
1377
  meta.aliasMap = {};
1192
- prop.value.properties.forEach(function(aliasNode) {
1378
+ prop.value.properties.forEach(function (aliasNode) {
1193
1379
  var aliasName = getKeyName(aliasNode.key);
1194
1380
  var aliasValue = getKeyName(aliasNode.value);
1195
1381
  meta.aliasMap[aliasName] = aliasValue;
1196
1382
  });
1197
1383
  }
1198
-
1199
1384
  } else if (keyName == "meta") {
1200
1385
  path.skip();
1201
1386
  if (!prop.value.properties) {
1202
- t.addMarker("class.invalidThemeMeta", prop.loc||null);
1387
+ t.addMarker("class.invalidThemeMeta", prop.loc || null);
1203
1388
  } else {
1204
1389
  let meta = makeMeta("themeMeta", null, prop);
1205
1390
  meta.themeMetaMap = {};
1206
- prop.value.properties.forEach(function(node) {
1391
+ prop.value.properties.forEach(function (node) {
1207
1392
  var key = getKeyName(node.key);
1208
1393
  var value = collapseMemberExpression(node.value);
1209
1394
  meta.themeMetaMap[key] = value;
@@ -1230,13 +1415,23 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1230
1415
  },
1231
1416
  exit(path) {
1232
1417
  if (t.__analyser.isAddCreatedAt()) {
1233
- var fn = types.memberExpression(types.identifier("qx"), types.identifier("$$createdAt"));
1418
+ var fn = types.memberExpression(
1419
+ types.identifier("qx"),
1420
+ types.identifier("$$createdAt")
1421
+ );
1422
+
1234
1423
  var tmp = types.callExpression(fn, [
1235
1424
  path.node,
1236
1425
  types.stringLiteral(t.__className.replace(/\./g, "/") + ".js"),
1237
- types.numericLiteral(path.node.loc ? path.node.loc.start.line : 0),
1238
- types.numericLiteral(path.node.loc ? path.node.loc.start.column : 0)
1426
+ types.numericLiteral(
1427
+ path.node.loc ? path.node.loc.start.line : 0
1428
+ ),
1429
+
1430
+ types.numericLiteral(
1431
+ path.node.loc ? path.node.loc.start.column : 0
1432
+ )
1239
1433
  ]);
1434
+
1240
1435
  path.replaceWith(tmp);
1241
1436
  path.skip();
1242
1437
  }
@@ -1268,7 +1463,11 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1268
1463
  if (dbClassInfo.dependsOn) {
1269
1464
  copyInfo.dependsOn = {};
1270
1465
  Object.keys(dbClassInfo.dependsOn).forEach(key => {
1271
- let tmp = copyInfo.dependsOn[key] = Object.assign({}, dbClassInfo.dependsOn[key]);
1466
+ let tmp = (copyInfo.dependsOn[key] = Object.assign(
1467
+ {},
1468
+ dbClassInfo.dependsOn[key]
1469
+ ));
1470
+
1272
1471
  if (tmp.load) {
1273
1472
  delete tmp.load;
1274
1473
  tmp.require = true;
@@ -1288,22 +1487,47 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1288
1487
  }
1289
1488
  }
1290
1489
  }
1291
- let tmp = types.variableDeclaration("var", [ types.variableDeclarator(types.identifier("$$dbClassInfo"), literalValueToExpression(copyInfo)) ]);
1490
+ let tmp = types.variableDeclaration("var", [
1491
+ types.variableDeclarator(
1492
+ types.identifier("$$dbClassInfo"),
1493
+ literalValueToExpression(copyInfo)
1494
+ )
1495
+ ]);
1496
+
1292
1497
  let inject = [tmp];
1293
1498
  if (hasLoadDeps) {
1294
- tmp = babylon.parse("qx.Bootstrap.executePendingDefers($$dbClassInfo);").program.body;
1499
+ tmp = babylon.parse(
1500
+ "qx.Bootstrap.executePendingDefers($$dbClassInfo);"
1501
+ ).program.body;
1295
1502
  inject.push(tmp[0]);
1296
1503
  }
1297
1504
  path.node.body.forEach(node => inject.push(node));
1298
- tmp = babylon.parse(t.__className + ".$$dbClassInfo = $$dbClassInfo;").program.body;
1505
+ tmp = babylon.parse(
1506
+ t.__className + ".$$dbClassInfo = $$dbClassInfo;"
1507
+ ).program.body;
1299
1508
  inject.push(tmp[0]);
1300
1509
  let block = types.blockStatement(inject);
1301
- let rootFn = types.expressionStatement(types.callExpression(types.functionExpression(null, [], block), []));
1510
+ let rootFn = types.expressionStatement(
1511
+ types.callExpression(
1512
+ types.functionExpression(null, [], block),
1513
+ []
1514
+ )
1515
+ );
1302
1516
 
1303
1517
  path.node.body.splice(0, path.node.body.length, rootFn);
1304
1518
  }
1305
1519
  },
1306
1520
 
1521
+ // Babel seems to be suppressing ClassDeclarations...
1522
+ ClassBody: {
1523
+ enter(path) {
1524
+ es6ClassDeclarations++;
1525
+ },
1526
+ exit(path) {
1527
+ es6ClassDeclarations--;
1528
+ }
1529
+ },
1530
+
1307
1531
  Literal(path) {
1308
1532
  if (typeof path.node.value == "string") {
1309
1533
  path.node.value = t.encodePrivate(path.node.value, false, path.loc);
@@ -1369,10 +1593,14 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1369
1593
  OptionalCallExpression: 1,
1370
1594
  JSXExpressionContainer: 1
1371
1595
  };
1596
+
1372
1597
  let root = path;
1373
1598
  while (root) {
1374
1599
  let parentType = root.parentPath.node.type;
1375
- if (parentType == "MemberExpression" || parentType == "OptionalMemberExpression") {
1600
+ if (
1601
+ parentType == "MemberExpression" ||
1602
+ parentType == "OptionalMemberExpression"
1603
+ ) {
1376
1604
  root = root.parentPath;
1377
1605
  continue;
1378
1606
  }
@@ -1394,7 +1622,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1394
1622
  },
1395
1623
 
1396
1624
  CallExpression: {
1397
- enter: function(path) {
1625
+ enter(path) {
1398
1626
  function getStringArg(index) {
1399
1627
  if (index >= path.node.arguments.length) {
1400
1628
  return null;
@@ -1420,7 +1648,12 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1420
1648
  }
1421
1649
  }
1422
1650
 
1423
- if (types.isMemberExpression(path.node.callee)) {
1651
+ if (
1652
+ types.isMemberExpression(path.node.callee) ||
1653
+ (es6ClassDeclarations == 0 &&
1654
+ (path.node.callee.object?.type == "Super" ||
1655
+ path.node.callee.type == "Super"))
1656
+ ) {
1424
1657
  let name = collapseMemberExpression(path.node.callee);
1425
1658
  let thisAlias = null;
1426
1659
 
@@ -1431,7 +1664,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1431
1664
  // var that = this, args = arguments;
1432
1665
  // (function() { that.base(args); })();
1433
1666
  // ```
1434
- if (path.node.callee.object.type == "Identifier") {
1667
+ if (path.node.callee.object?.type == "Identifier") {
1435
1668
  let originalAlias = path.node.callee.object.name;
1436
1669
  let alias = originalAlias;
1437
1670
  let aliasIsThis = false;
@@ -1473,167 +1706,293 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1473
1706
  // Create new meta
1474
1707
  t.__pushMeta(className);
1475
1708
  if (needsQxCoreEnvironment) {
1476
- t._requireClass("qx.core.Environment", { location: needsQxCoreEnvironment, defer: true });
1709
+ t._requireClass("qx.core.Environment", {
1710
+ location: needsQxCoreEnvironment,
1711
+ defer: true
1712
+ });
1477
1713
  }
1478
1714
 
1479
1715
  let meta = makeMeta("clazz", null, path.parent);
1480
1716
  t.__classMeta.type = TYPE[name];
1481
- if (t.__definingType == "Class" || t.__definingType == "Bootstrap") {
1482
- let typeProp = classDef.properties.find(prop => prop.key.type == "Identifier" && prop.key.value == "type");
1717
+ if (
1718
+ t.__definingType == "Class" ||
1719
+ t.__definingType == "Bootstrap"
1720
+ ) {
1721
+ let typeProp = classDef.properties.find(
1722
+ prop =>
1723
+ prop.key.type == "Identifier" && prop.key.value == "type"
1724
+ );
1725
+
1483
1726
  if (typeProp) {
1484
- t.__classMeta.isStatic == typeProp.value.type == "Literal" && typeProp.value.value === "static";
1727
+ (t.__classMeta.isStatic == typeProp.value.type) ==
1728
+ "Literal" && typeProp.value.value === "static";
1485
1729
  }
1486
1730
  }
1487
1731
  checkJsDocDirectives(meta.jsdoc, path.node.loc);
1488
1732
 
1489
- t._requireClass(name, { usage: "dynamic", location: path.node.loc });
1733
+ t._requireClass(name, {
1734
+ usage: "dynamic",
1735
+ location: path.node.loc
1736
+ });
1737
+
1490
1738
  path.skip();
1491
- path.traverse(CLASS_DEF_VISITOR, {classDefPath: path});
1739
+ path.traverse(CLASS_DEF_VISITOR, { classDefPath: path });
1492
1740
  t.__popMeta(className);
1493
-
1494
1741
  } else if (name == "qx.core.Environment.add") {
1495
1742
  let arg = path.node.arguments[0];
1496
1743
  if (types.isLiteral(arg)) {
1497
1744
  if (typeof arg.value != "string") {
1498
- log.error("Invalid argument to qx.core.Environment.add: " + arg.value);
1745
+ log.error(
1746
+ "Invalid argument to qx.core.Environment.add: " +
1747
+ arg.value
1748
+ );
1499
1749
  } else {
1500
1750
  t.__environmentChecks.provided[arg.value] = true;
1501
- if (!arg.value.startsWith(t.__className) &&
1502
- !Object.prototype.hasOwnProperty.call(qx.tool.compiler.ClassFile.ENVIRONMENT_CONSTANTS, arg.value)) {
1751
+ if (
1752
+ !arg.value.startsWith(t.__className) &&
1753
+ !Object.prototype.hasOwnProperty.call(
1754
+ qx.tool.compiler.ClassFile.ENVIRONMENT_CONSTANTS,
1755
+ arg.value
1756
+ )
1757
+ ) {
1503
1758
  let symbol = t.__library.getSymbolType(arg.value);
1504
1759
  if (!symbol || symbol.symbolType != "environment") {
1505
- t.addMarker("environment.unreachable", path.node.loc, arg.value);
1760
+ t.addMarker(
1761
+ "environment.unreachable",
1762
+ path.node.loc,
1763
+ arg.value
1764
+ );
1506
1765
  }
1507
1766
  }
1508
1767
  }
1509
1768
  }
1510
- t._requireClass("qx.core.Environment", { usage: "dynamic", location: path.node.loc });
1511
-
1769
+ t._requireClass("qx.core.Environment", {
1770
+ usage: "dynamic",
1771
+ location: path.node.loc
1772
+ });
1512
1773
  } else if (name == "qx.core.Environment.get") {
1513
1774
  let arg = path.node.arguments[0];
1514
1775
  if (types.isLiteral(arg)) {
1515
1776
  if (typeof arg.value != "string") {
1516
- log.error("Invalid argument to qx.core.Environment.get: " + arg.value);
1777
+ log.error(
1778
+ "Invalid argument to qx.core.Environment.get: " +
1779
+ arg.value
1780
+ );
1517
1781
  } else {
1518
1782
  t.addEnvCheck(arg.value, path.node.loc);
1519
1783
  }
1520
1784
  }
1521
- t._requireClass("qx.core.Environment", { usage: "dynamic", location: path.node.loc });
1785
+ t._requireClass("qx.core.Environment", {
1786
+ usage: "dynamic",
1787
+ location: path.node.loc
1788
+ });
1789
+
1522
1790
  path.skip();
1523
1791
  path.traverse(VISITOR);
1524
-
1525
1792
  } else if (name == "qx.core.Environment.select") {
1526
1793
  let arg = path.node.arguments[0];
1527
1794
  if (types.isLiteral(arg)) {
1528
1795
  if (typeof arg.value != "string") {
1529
- log.error("Invalid argument to qx.core.Environment.select: " + arg.value);
1796
+ log.error(
1797
+ "Invalid argument to qx.core.Environment.select: " +
1798
+ arg.value
1799
+ );
1530
1800
  } else {
1531
1801
  t.addEnvCheck(arg.value, path.node.loc);
1532
1802
  }
1533
1803
  }
1534
1804
 
1535
- t._requireClass("qx.core.Environment", { usage: "dynamic", location: path.node.loc });
1805
+ t._requireClass("qx.core.Environment", {
1806
+ usage: "dynamic",
1807
+ location: path.node.loc
1808
+ });
1809
+
1536
1810
  path.skip();
1537
1811
  path.traverse(VISITOR);
1538
-
1539
- } else if (name == "this.base") {
1812
+ } else if (
1813
+ name == "this.base" ||
1814
+ (es6ClassDeclarations == 0 &&
1815
+ (name == "super" || name.startsWith("super.")))
1816
+ ) {
1540
1817
  let expr;
1541
1818
 
1542
1819
  // For mixins, there is never a valid time to call this.base() in the constructor; but it is
1543
1820
  // OK in methods - but we have to refer to superclass.methodName directly. For ordinary
1544
1821
  // classes, we need to use constructor.methodName.base.
1545
1822
  if (t.__definingType == "Mixin") {
1546
- expr = types.callExpression(expandMemberExpression("qx.Mixin.baseClassMethod"), [
1547
- expandMemberExpression("this.constructor"),
1548
- types.identifier(t.__classMeta.className),
1549
- types.stringLiteral(t.__classMeta.functionName)
1550
- ]);
1823
+ expr = types.callExpression(
1824
+ expandMemberExpression("qx.Mixin.baseClassMethod"),
1825
+ [
1826
+ expandMemberExpression("this.constructor"),
1827
+ types.identifier(t.__classMeta.className),
1828
+ types.stringLiteral(t.__classMeta.functionName)
1829
+ ]
1830
+ );
1551
1831
  expr = types.memberExpression(expr, types.identifier("call"));
1552
- //expr = expandMemberExpression("qx.Mixin.baseClassMethod(this.constructor, " + t.__classMeta.className + ", \"" + t.__classMeta.functionName + "\").call");
1553
- //expr = expandMemberExpression(t.__classMeta.className + ".$$members." + t.__classMeta.functionName + ".base.call");
1554
1832
  } else if (t.__classMeta.functionName == "$$constructor") {
1555
- expr = expandMemberExpression(t.__classMeta.superClass + ".constructor.call");
1833
+ expr = expandMemberExpression(
1834
+ t.__classMeta.superClass + ".constructor.call"
1835
+ );
1556
1836
  } else if (t.__classMeta.className) {
1557
- expr = expandMemberExpression(t.__classMeta.className + ".prototype." + t.__classMeta.functionName + ".base.call");
1837
+ expr = expandMemberExpression(
1838
+ t.__classMeta.className +
1839
+ ".superclass" +
1840
+ ".prototype." +
1841
+ t.__classMeta.functionName +
1842
+ ".call"
1843
+ );
1558
1844
  } else {
1559
- expr = expandMemberExpression(t.__classMeta.superClass + ".prototype." + t.__classMeta.functionName + ".call");
1845
+ expr = expandMemberExpression(
1846
+ t.__classMeta.superClass +
1847
+ ".prototype." +
1848
+ t.__classMeta.functionName +
1849
+ ".call"
1850
+ );
1560
1851
  }
1561
- if (thisAlias) {
1562
- path.node.arguments[0] = types.identifier(thisAlias);
1852
+ let thisArgument = thisAlias
1853
+ ? types.identifier(thisAlias)
1854
+ : types.thisExpression();
1855
+ if (name.startsWith("super")) {
1856
+ path.node.arguments.unshift(thisArgument);
1563
1857
  } else {
1564
- path.node.arguments[0] = types.thisExpression();
1858
+ path.node.arguments[0] = thisArgument;
1565
1859
  }
1566
1860
  let callExpr = types.callExpression(expr, path.node.arguments);
1567
1861
  path.replaceWith(callExpr);
1568
-
1569
- } else if (name == "this.base.apply" || name == "this.base.call") {
1862
+ } else if (
1863
+ name == "this.base.apply" ||
1864
+ name == "this.base.call"
1865
+ ) {
1570
1866
  let methodName = name == "this.base.apply" ? "apply" : "call";
1571
1867
 
1572
1868
  let expr;
1573
1869
  if (t.__definingType == "Mixin") {
1574
- expr = expandMemberExpression("this.constructor.superclass.prototype." + t.__classMeta.functionName + ".call");
1870
+ expr = expandMemberExpression(
1871
+ "this.constructor.superclass.prototype." +
1872
+ t.__classMeta.functionName +
1873
+ ".call"
1874
+ );
1575
1875
  } else if (t.__classMeta.functionName == "$$constructor") {
1576
- expr = expandMemberExpression(t.__classMeta.superClass + ".constructor." + methodName);
1876
+ expr = expandMemberExpression(
1877
+ t.__classMeta.superClass + ".constructor." + methodName
1878
+ );
1577
1879
  } else {
1578
- expr = expandMemberExpression(t.__className + ".prototype." + t.__classMeta.functionName + ".base." + methodName);
1880
+ expr = expandMemberExpression(
1881
+ t.__className +
1882
+ ".prototype." +
1883
+ t.__classMeta.functionName +
1884
+ ".base." +
1885
+ methodName
1886
+ );
1579
1887
  }
1580
1888
 
1581
1889
  // Original call to this.base.apply would have included arguments in the first element of the array
1582
1890
  // here we remove that because it's not needed, specifically changing
1583
1891
  // `this.base.apply(this, args)` to
1584
1892
  // `this.base.apply(this, args.slice().shift())`
1585
- let exprSplice = types.callExpression(types.memberExpression(path.node.arguments[1], types.identifier("slice")), []);
1586
- let exprUnshift = types.callExpression(types.memberExpression(exprSplice, types.identifier("shift")), []);
1587
- let callExpr = types.callExpression(expr, [ path.node.arguments[0], exprUnshift ]);
1588
- path.replaceWith(callExpr);
1893
+ let exprSplice = types.callExpression(
1894
+ types.memberExpression(
1895
+ path.node.arguments[1],
1896
+ types.identifier("slice")
1897
+ ),
1898
+
1899
+ []
1900
+ );
1901
+
1902
+ let exprUnshift = types.callExpression(
1903
+ types.memberExpression(exprSplice, types.identifier("shift")),
1904
+ []
1905
+ );
1589
1906
 
1907
+ let callExpr = types.callExpression(expr, [
1908
+ path.node.arguments[0],
1909
+ exprUnshift
1910
+ ]);
1911
+
1912
+ path.replaceWith(callExpr);
1590
1913
  } else if (name == "this.self") {
1591
1914
  let expr = expandMemberExpression(t.__classMeta.className);
1592
1915
  path.replaceWith(expr);
1593
-
1594
- } else if (name == "this.tr" || name == "this.marktr" || name == "qx.locale.Manager.tr" || name == "qx.locale.Manager.marktr") {
1916
+ } else if (
1917
+ name == "this.tr" ||
1918
+ name == "this.marktr" ||
1919
+ name == "qx.locale.Manager.tr" ||
1920
+ name == "qx.locale.Manager.marktr"
1921
+ ) {
1595
1922
  let arg0 = getStringArg(0);
1596
1923
  if (!arg0) {
1597
- t.addMarker("translate.invalidMessageId", path.node.loc, arg0);
1924
+ t.addMarker(
1925
+ "translate.invalidMessageId",
1926
+ path.node.loc,
1927
+ arg0
1928
+ );
1598
1929
  } else {
1599
1930
  addTranslation({ msgid: arg0 });
1600
1931
  }
1601
-
1602
- } else if (name == "this.trn" || name == "qx.locale.Manager.trn") {
1932
+ } else if (
1933
+ name == "this.trn" ||
1934
+ name == "qx.locale.Manager.trn"
1935
+ ) {
1603
1936
  let arg0 = getStringArg(0);
1604
1937
  let arg1 = getStringArg(1);
1605
1938
  if (!arg0 || !arg1) {
1606
- t.addMarker("translate.invalidMessageIds", path.node.loc, arg0, arg1);
1939
+ t.addMarker(
1940
+ "translate.invalidMessageIds",
1941
+ path.node.loc,
1942
+ arg0,
1943
+ arg1
1944
+ );
1607
1945
  } else {
1608
1946
  addTranslation({ msgid: arg0, msgid_plural: arg1 });
1609
1947
  }
1610
-
1611
- } else if (name == "this.trc" || name == "qx.locale.Manager.trc") {
1948
+ } else if (
1949
+ name == "this.trc" ||
1950
+ name == "qx.locale.Manager.trc"
1951
+ ) {
1612
1952
  let arg0 = getStringArg(0);
1613
1953
  let arg1 = getStringArg(1);
1614
1954
  if (!arg0 || !arg1) {
1615
- t.addMarker("translate.invalidMessageIds", path.node.loc, arg0, arg1);
1955
+ t.addMarker(
1956
+ "translate.invalidMessageIds",
1957
+ path.node.loc,
1958
+ arg0,
1959
+ arg1
1960
+ );
1616
1961
  } else {
1617
1962
  addTranslation({ msgid: arg1, comment: arg0 });
1618
1963
  }
1619
-
1620
- } else if (name == "this.trnc" || name == "qx.locale.Manager.trnc") {
1964
+ } else if (
1965
+ name == "this.trnc" ||
1966
+ name == "qx.locale.Manager.trnc"
1967
+ ) {
1621
1968
  let arg0 = getStringArg(0);
1622
1969
  let arg1 = getStringArg(1);
1623
1970
  let arg2 = getStringArg(2);
1624
1971
  if (!arg0 || !arg1 || !arg2) {
1625
- t.addMarker("translate.invalidMessageIds3", path.node.loc, arg0, arg1, arg2);
1972
+ t.addMarker(
1973
+ "translate.invalidMessageIds3",
1974
+ path.node.loc,
1975
+ arg0,
1976
+ arg1,
1977
+ arg2
1978
+ );
1626
1979
  } else {
1627
- addTranslation({ msgid: arg1, msgid_plural: arg2, comment: arg0 });
1980
+ addTranslation({
1981
+ msgid: arg1,
1982
+ msgid_plural: arg2,
1983
+ comment: arg0
1984
+ });
1628
1985
  }
1629
-
1630
1986
  } else {
1631
1987
  let pos = name.lastIndexOf(".");
1632
1988
  // name can be ".concat" when used with "[].concat"
1633
1989
  if (pos > 0) {
1634
1990
  let str = name.substring(0, pos);
1635
1991
  if (!t.hasDeclaration(str)) {
1636
- t._requireClass(str, { usage: "dynamic", location: path.node.loc });
1992
+ t._requireClass(str, {
1993
+ usage: "dynamic",
1994
+ location: path.node.loc
1995
+ });
1637
1996
  }
1638
1997
  }
1639
1998
  }
@@ -1654,7 +2013,10 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1654
2013
  }
1655
2014
 
1656
2015
  // Handle `[ 123 ].blah()` by visiting
1657
- if (path.node.object.type == "MemberExpression" && path.node.object.object.type == "ArrayExpression") {
2016
+ if (
2017
+ path.node.object.type == "MemberExpression" &&
2018
+ path.node.object.object.type == "ArrayExpression"
2019
+ ) {
1658
2020
  return;
1659
2021
  }
1660
2022
 
@@ -1691,9 +2053,14 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1691
2053
  ObjectProperty: {
1692
2054
  exit(path) {
1693
2055
  if (this.__privateMangling == "readable") {
1694
- if (path.node.value.type == "FunctionExpression" &&
1695
- path.node.value.id === null) {
1696
- let functionName = typeof path.node.key.value == "string" ? path.node.key.value : path.node.key.name;
2056
+ if (
2057
+ path.node.value.type == "FunctionExpression" &&
2058
+ path.node.value.id === null
2059
+ ) {
2060
+ let functionName =
2061
+ typeof path.node.key.value == "string"
2062
+ ? path.node.key.value
2063
+ : path.node.key.name;
1697
2064
  if (!qx.tool.compiler.ClassFile.RESERVED_WORDS[functionName]) {
1698
2065
  path.node.value.id = types.identifier(functionName);
1699
2066
  }
@@ -1703,16 +2070,29 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1703
2070
  },
1704
2071
 
1705
2072
  Property(path) {
1706
- if (t.__classMeta &&
1707
- t.__classMeta._topLevel &&
1708
- t.__classMeta._topLevel.path == path.parentPath.parentPath) {
2073
+ if (
2074
+ t.__classMeta &&
2075
+ t.__classMeta._topLevel &&
2076
+ t.__classMeta._topLevel.path == path.parentPath.parentPath
2077
+ ) {
1709
2078
  t.__classMeta.functionName = getKeyName(path.node.key);
1710
- makeMeta(t.__classMeta._topLevel.keyName, t.__classMeta.functionName, path.node);
2079
+ makeMeta(
2080
+ t.__classMeta._topLevel.keyName,
2081
+ t.__classMeta.functionName,
2082
+ path.node
2083
+ );
2084
+
1711
2085
  path.skip();
1712
2086
  let functionId = null;
1713
2087
  if (this.__privateMangling == "readable") {
1714
- if (path.node.value.type == "FunctionExpression" && path.node.value.id === null) {
1715
- let functionName = typeof path.node.key.value == "string" ? path.node.key.value : path.node.key.name;
2088
+ if (
2089
+ path.node.value.type == "FunctionExpression" &&
2090
+ path.node.value.id === null
2091
+ ) {
2092
+ let functionName =
2093
+ typeof path.node.key.value == "string"
2094
+ ? path.node.key.value
2095
+ : path.node.key.name;
1716
2096
  if (!qx.tool.compiler.ClassFile.RESERVED_WORDS[functionName]) {
1717
2097
  functionId = types.identifier(functionName);
1718
2098
  }
@@ -1727,25 +2107,31 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1727
2107
  },
1728
2108
 
1729
2109
  ObjectMethod(path) {
1730
- if (t.__classMeta) {
1731
- // Methods within a top level object (ie "members" or "statics"), record the method name and meta data
1732
- if (t.__classMeta._topLevel &&
1733
- t.__classMeta._topLevel.path == path.parentPath.parentPath) {
1734
- t.__classMeta.functionName = getKeyName(path.node.key);
1735
- makeMeta(t.__classMeta._topLevel.keyName, t.__classMeta.functionName, path.node);
1736
- path.skip();
1737
- enterFunction(path);
1738
- path.traverse(VISITOR);
1739
- exitFunction(path);
1740
- t.__classMeta.functionName = null;
2110
+ // Methods within a top level object (ie "members" or "statics"), record the method name and meta data
2111
+ if (
2112
+ t.__classMeta &&
2113
+ t.__classMeta._topLevel &&
2114
+ t.__classMeta._topLevel.path == path.parentPath.parentPath
2115
+ ) {
2116
+ t.__classMeta.functionName = getKeyName(path.node.key);
2117
+ makeMeta(
2118
+ t.__classMeta._topLevel.keyName,
2119
+ t.__classMeta.functionName,
2120
+ path.node
2121
+ );
2122
+
2123
+ path.skip();
2124
+ enterFunction(path);
2125
+ path.traverse(VISITOR);
2126
+ exitFunction(path);
2127
+ t.__classMeta.functionName = null;
1741
2128
 
1742
2129
  // Otherwise traverse method as normal
1743
- } else {
1744
- path.skip();
1745
- enterFunction(path);
1746
- path.traverse(VISITOR);
1747
- exitFunction(path);
1748
- }
2130
+ } else {
2131
+ path.skip();
2132
+ enterFunction(path);
2133
+ path.traverse(VISITOR);
2134
+ exitFunction(path);
1749
2135
  }
1750
2136
  },
1751
2137
 
@@ -1770,7 +2156,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1770
2156
  }
1771
2157
  t.addDeclaration(decl.id.name, value);
1772
2158
 
1773
- // Object destructuring `var {a,b} = {...}`
2159
+ // Object destructuring `var {a,b} = {...}`
1774
2160
  } else if (decl.id.type == "ObjectPattern") {
1775
2161
  decl.id.properties.forEach(prop => {
1776
2162
  if (prop.value.type == "AssignmentPattern") {
@@ -1780,7 +2166,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1780
2166
  }
1781
2167
  });
1782
2168
 
1783
- // Array destructuring `var [a,b] = [...]`
2169
+ // Array destructuring `var [a,b] = [...]`
1784
2170
  } else if (decl.id.type == "ArrayPattern") {
1785
2171
  decl.id.elements.forEach(prop => {
1786
2172
  if (prop) {
@@ -1835,7 +2221,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1835
2221
  *
1836
2222
  * @param className {String} name of the class being defined
1837
2223
  */
1838
- __pushMeta: function(className) {
2224
+ __pushMeta(className) {
1839
2225
  var pos = (className || "").lastIndexOf(".");
1840
2226
  var meta = {
1841
2227
  className: className,
@@ -1846,6 +2232,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1846
2232
  mixins: [],
1847
2233
  functionName: null
1848
2234
  };
2235
+
1849
2236
  this.__metaStack.push(meta);
1850
2237
  this.__classMeta = meta;
1851
2238
  this.__metaDefinitions[className] = meta;
@@ -1855,13 +2242,18 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1855
2242
  /**
1856
2243
  * Pops the current meta off the stack, optionally checking that the classname is correct
1857
2244
  */
1858
- __popMeta: function(className) {
2245
+ __popMeta(className) {
1859
2246
  if (!this.__metaStack.length) {
1860
2247
  throw new Error("No __metaStack entries to pop");
1861
2248
  }
1862
2249
  let meta = this.__metaStack[this.__metaStack.length - 1];
1863
2250
  if (className && meta.className != className) {
1864
- throw new Error("Wrong __metaStack entries to pop, expected " + className + " found " + meta.className);
2251
+ throw new Error(
2252
+ "Wrong __metaStack entries to pop, expected " +
2253
+ className +
2254
+ " found " +
2255
+ meta.className
2256
+ );
1865
2257
  }
1866
2258
  this.__metaStack.pop();
1867
2259
  meta = this.__metaStack[this.__metaStack.length - 1] || null;
@@ -1871,7 +2263,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1871
2263
  /**
1872
2264
  * Pushes a new scope on the stack
1873
2265
  */
1874
- pushScope: function(functionName, node, isClassMember) {
2266
+ pushScope(functionName, node, isClassMember) {
1875
2267
  this.__scope = {
1876
2268
  functionName: functionName,
1877
2269
  parent: this.__scope,
@@ -1885,9 +2277,9 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1885
2277
  /**
1886
2278
  * Pops a scope from the stack
1887
2279
  */
1888
- popScope: function(node) {
2280
+ popScope(node) {
1889
2281
  var old = this.__scope;
1890
- var scope = this.__scope = this.__scope.parent;
2282
+ var scope = (this.__scope = this.__scope.parent);
1891
2283
  var unresolved = scope.unresolved;
1892
2284
 
1893
2285
  for (var name in old.unresolved) {
@@ -1901,7 +2293,10 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1901
2293
  locations: []
1902
2294
  };
1903
2295
  }
1904
- entry.locations.push.apply(entry.locations, old.unresolved[name].locations);
2296
+ entry.locations.push.apply(
2297
+ entry.locations,
2298
+ old.unresolved[name].locations
2299
+ );
1905
2300
  }
1906
2301
  },
1907
2302
 
@@ -1910,7 +2305,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1910
2305
  *
1911
2306
  * @returns {Boolean}
1912
2307
  */
1913
- isLoadScope: function() {
2308
+ isLoadScope() {
1914
2309
  return !this.__scope.parent;
1915
2310
  },
1916
2311
 
@@ -1919,7 +2314,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1919
2314
  *
1920
2315
  * @returns {Boolean}
1921
2316
  */
1922
- hasDefer: function() {
2317
+ hasDefer() {
1923
2318
  return this.__hasDefer;
1924
2319
  },
1925
2320
 
@@ -1930,7 +2325,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1930
2325
  * @param name {String} the name of the variabvle being declared
1931
2326
  * @param valueName {String} the value to assign to the variable
1932
2327
  */
1933
- addDeclaration: function(name, valueName) {
2328
+ addDeclaration(name, valueName) {
1934
2329
  if (this.__scope.vars[name] === undefined) {
1935
2330
  this.__scope.vars[name] = valueName || true;
1936
2331
  var unresolved = this.__scope.unresolved;
@@ -1951,7 +2346,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1951
2346
  * @param name
1952
2347
  * @returns {Boolean}
1953
2348
  */
1954
- hasDeclaration: function(name) {
2349
+ hasDeclaration(name) {
1955
2350
  var pos = name.indexOf(".");
1956
2351
  if (pos > -1) {
1957
2352
  name = name.substring(0, pos);
@@ -1969,7 +2364,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1969
2364
  * @param name
1970
2365
  * @param loc
1971
2366
  */
1972
- addReference: function(name, loc) {
2367
+ addReference(name, loc) {
1973
2368
  if (!qx.lang.Type.isArray(name)) {
1974
2369
  name = name.split(".");
1975
2370
  }
@@ -1979,7 +2374,12 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1979
2374
  }
1980
2375
 
1981
2376
  // Global variable or a local variable?
1982
- if (name[0] === "this" || name[0] === "[]" || this.__globalSymbols[name[0]] || this.hasDeclaration(name[0])) {
2377
+ if (
2378
+ name[0] === "this" ||
2379
+ name[0] === "[]" ||
2380
+ this.__globalSymbols[name[0]] ||
2381
+ this.hasDeclaration(name[0])
2382
+ ) {
1983
2383
  return;
1984
2384
  }
1985
2385
 
@@ -1994,7 +2394,11 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1994
2394
  }
1995
2395
  }
1996
2396
  name = str;
1997
- if (name == this.__className || name.startsWith(this.__className + ".") || name.startsWith("(")) {
2397
+ if (
2398
+ name == this.__className ||
2399
+ name.startsWith(this.__className + ".") ||
2400
+ name.startsWith("(")
2401
+ ) {
1998
2402
  return;
1999
2403
  }
2000
2404
 
@@ -2018,14 +2422,20 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2018
2422
  * @param location {Location} the location of the symbol
2019
2423
  * @return {String} the encoded name if private, the original name if not private
2020
2424
  */
2021
- encodePrivate: function(name, isIdentifier, location) {
2425
+ encodePrivate(name, isIdentifier, location) {
2022
2426
  const DO_NOT_ENCODE = {
2023
- "__proto__": 1,
2024
- "__iterator__": 1,
2025
- "__dirname": 1,
2026
- "__filename": 1
2427
+ __proto__: 1,
2428
+ __iterator__: 1,
2429
+ __dirname: 1,
2430
+ __filename: 1
2027
2431
  };
2028
- if (DO_NOT_ENCODE[name] || this.__privateMangling == "off" || !name.startsWith("__") || !name.match(/^[0-9a-z_$]+$/i)) {
2432
+
2433
+ if (
2434
+ DO_NOT_ENCODE[name] ||
2435
+ this.__privateMangling == "off" ||
2436
+ !name.startsWith("__") ||
2437
+ !name.match(/^[0-9a-z_$]+$/i)
2438
+ ) {
2029
2439
  return name;
2030
2440
  }
2031
2441
 
@@ -2056,14 +2466,16 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2056
2466
  let prefixes = db.manglePrefixes;
2057
2467
  let prefix = prefixes.classPrefixes[this.__className];
2058
2468
  if (!prefix) {
2059
- prefix = "__P_" + (++prefixes.nextPrefix) + "_";
2469
+ prefix = "__P_" + ++prefixes.nextPrefix + "_";
2060
2470
  prefixes.classPrefixes[this.__className] = prefix;
2061
2471
  }
2062
2472
 
2063
2473
  if (this.__privateMangling == "readable") {
2064
- coded = this.__privates[name] = name + prefix + Object.keys(this.__privates).length;
2474
+ coded = this.__privates[name] =
2475
+ name + prefix + Object.keys(this.__privates).length;
2065
2476
  } else {
2066
- coded = this.__privates[name] = prefix + Object.keys(this.__privates).length;
2477
+ coded = this.__privates[name] =
2478
+ prefix + Object.keys(this.__privates).length;
2067
2479
  }
2068
2480
  }
2069
2481
  return coded;
@@ -2073,7 +2485,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2073
2485
  * Removes a reference from scope; this should only really be used after scanning is complete
2074
2486
  * @param name
2075
2487
  */
2076
- deleteReference: function(name) {
2488
+ deleteReference(name) {
2077
2489
  delete this.__scope.unresolved[name];
2078
2490
  var stub = name + ".";
2079
2491
  for (var id in this.__scope.unresolved) {
@@ -2088,7 +2500,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2088
2500
  *
2089
2501
  * @param name {String} name of the symbol
2090
2502
  */
2091
- addExternal: function(name) {
2503
+ addExternal(name) {
2092
2504
  if (this.__externals.indexOf(name) < 0) {
2093
2505
  this.__externals.push(name);
2094
2506
  }
@@ -2098,12 +2510,12 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2098
2510
  * Adds an ignored symbol
2099
2511
  * @param name {String} name of the symbol
2100
2512
  */
2101
- addIgnore: function(name) {
2513
+ addIgnore(name) {
2102
2514
  var scope = this.__scope;
2103
2515
  if (!scope.ignore) {
2104
2516
  scope.ignore = {};
2105
2517
  }
2106
- var segs = (name).split(",");
2518
+ var segs = name.split(",");
2107
2519
  segs.forEach(name => {
2108
2520
  name = name.trim();
2109
2521
  if (name.length) {
@@ -2123,7 +2535,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2123
2535
  * @param name {String} symbol name
2124
2536
  * @return {Boolean} true if ignored
2125
2537
  */
2126
- isIgnored: function(name) {
2538
+ isIgnored(name) {
2127
2539
  for (var tmp = this.__scope; tmp; tmp = tmp.parent) {
2128
2540
  if (tmp.ignore) {
2129
2541
  if (tmp.ignore[name]) {
@@ -2145,7 +2557,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2145
2557
  * Removes an ignored symbol
2146
2558
  * @param name {String} name of the symbol
2147
2559
  */
2148
- removeIgnore: function(name) {
2560
+ removeIgnore(name) {
2149
2561
  var scope = this.__scope;
2150
2562
  if (!scope) {
2151
2563
  return;
@@ -2160,14 +2572,16 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2160
2572
  * @param name
2161
2573
  * @param location {Object?} see _requireClass
2162
2574
  */
2163
- addEnvCheck: function(name, location) {
2575
+ addEnvCheck(name, location) {
2164
2576
  var t = this;
2165
2577
  var requiredOpts = {
2166
2578
  load: t.isLoadScope(),
2167
2579
  defer: t.__inDefer,
2168
- construct: t.__classMeta && t.__classMeta.functionName == "$$constructor",
2580
+ construct:
2581
+ t.__classMeta && t.__classMeta.functionName == "$$constructor",
2169
2582
  location: location
2170
2583
  };
2584
+
2171
2585
  var dest = t.__environmentChecks.required[name];
2172
2586
  if (!dest) {
2173
2587
  dest = t.__environmentChecks.required[name] = {};
@@ -2183,8 +2597,12 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2183
2597
  }
2184
2598
  t._requireClass("qx.core.Environment", { location: location });
2185
2599
  let info = t.__analyser.getSymbolType(name);
2186
- if (!Object.prototype.hasOwnProperty.call(qx.tool.compiler.ClassFile.ENVIRONMENT_CONSTANTS, name)) {
2187
-
2600
+ if (
2601
+ !Object.prototype.hasOwnProperty.call(
2602
+ qx.tool.compiler.ClassFile.ENVIRONMENT_CONSTANTS,
2603
+ name
2604
+ )
2605
+ ) {
2188
2606
  // Generally speaking, we try to have as few load dependencies as possible, and this
2189
2607
  // means that in a class' `.defer()` we will still allow for runtime loading. However,
2190
2608
  // we pull environment checks up as this is a common use case; the problem this is trying
@@ -2211,7 +2629,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2211
2629
  * @param pos {Object||null} position map; may contain a Map containing
2212
2630
  * {line,column?}, or a Map {start:{line,column}, end: {line,column}}.
2213
2631
  */
2214
- addMarker: function(msgId, pos) {
2632
+ addMarker(msgId, pos) {
2215
2633
  msgId = "qx.tool.compiler." + msgId;
2216
2634
 
2217
2635
  let key = msgId;
@@ -2278,7 +2696,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2278
2696
  * location {Map?} location of the token that caused the reference
2279
2697
  * @return {Map?} info about the symbol type of the named class, @see {Analyser.getSymbolType}
2280
2698
  */
2281
- _requireClass: function(name, opts) {
2699
+ _requireClass(name, opts) {
2282
2700
  if (qx.lang.Type.isArray(name)) {
2283
2701
  name.forEach(name => this._requireClass(name));
2284
2702
  return null;
@@ -2297,8 +2715,10 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2297
2715
  let requireOpts = {
2298
2716
  load: t.isLoadScope(),
2299
2717
  defer: t.__inDefer,
2300
- construct: t.__classMeta && t.__classMeta.functionName == "$$constructor"
2718
+ construct:
2719
+ t.__classMeta && t.__classMeta.functionName == "$$constructor"
2301
2720
  };
2721
+
2302
2722
  if (opts) {
2303
2723
  for (let key in opts) {
2304
2724
  requireOpts[key] = opts[key];
@@ -2345,9 +2765,13 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2345
2765
  }
2346
2766
 
2347
2767
  if (!name.startsWith(t.__className)) {
2348
- if (!qx.tool.compiler.ClassFile.DEFER_SAFE_SYMBOLS.some(function(symbol) {
2349
- return name.startsWith(symbol);
2350
- })) {
2768
+ if (
2769
+ !qx.tool.compiler.ClassFile.DEFER_SAFE_SYMBOLS.some(function (
2770
+ symbol
2771
+ ) {
2772
+ return name.startsWith(symbol);
2773
+ })
2774
+ ) {
2351
2775
  // Temporarily disabled until Qooxdoo framework catches up
2352
2776
  // t.addMarker("defer.unsafe", (opts && opts.location)||null, name);
2353
2777
  }
@@ -2365,7 +2789,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2365
2789
  * Adds a required asset
2366
2790
  * @param path
2367
2791
  */
2368
- _requireAsset: function(path) {
2792
+ _requireAsset(path) {
2369
2793
  if (path.indexOf("/") < 0 && path.indexOf(".") > -1) {
2370
2794
  path = path.replace(/\./g, "/");
2371
2795
  }
@@ -2378,7 +2802,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2378
2802
  * Returns the assets required by the class
2379
2803
  * @returns
2380
2804
  */
2381
- getAssets: function() {
2805
+ getAssets() {
2382
2806
  return this.__requiredAssets;
2383
2807
  },
2384
2808
 
@@ -2390,7 +2814,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2390
2814
  * @param name
2391
2815
  * @returns
2392
2816
  */
2393
- __findProperty: function(props, name) {
2817
+ __findProperty(props, name) {
2394
2818
  for (let i = 0; i < props.length; i++) {
2395
2819
  let prop = props[i];
2396
2820
  if (prop.type == "Property") {
@@ -2410,7 +2834,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2410
2834
  *
2411
2835
  * @returns
2412
2836
  */
2413
- getRequiredClasses: function() {
2837
+ getRequiredClasses() {
2414
2838
  return this.__requiredClasses;
2415
2839
  },
2416
2840
 
@@ -2419,7 +2843,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2419
2843
  *
2420
2844
  * @returns
2421
2845
  */
2422
- getUnresolvedSymbols: function() {
2846
+ getUnresolvedSymbols() {
2423
2847
  return this.__scope.unresolved;
2424
2848
  },
2425
2849
 
@@ -2427,19 +2851,19 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2427
2851
  * Returns the name of the class being compiled
2428
2852
  * @returns {null}
2429
2853
  */
2430
- getClassName: function() {
2854
+ getClassName() {
2431
2855
  return this.__className;
2432
2856
  }
2433
-
2434
2857
  },
2435
2858
 
2436
2859
  defer(statics) {
2437
2860
  statics.RESERVED_WORDS = {};
2438
- let str = "abstract arguments await boolean break byte case catch char class const continue debugger default delete do " +
2439
- "double else enum eval export extends false final finally float for function goto if implements import " +
2440
- "in instanceof int interface let long native new null package private protected public return short static "+
2441
- "super switch synchronized this throw throws transient true try typeof var void volatile while with yield";
2442
- str.split(/\s+/).forEach(word => statics.RESERVED_WORDS[word] = true);
2861
+ let str =
2862
+ "abstract arguments await boolean break byte case catch char class const continue debugger default delete do " +
2863
+ "double else enum eval export extends false final finally float for function goto if implements import " +
2864
+ "in instanceof int interface let long native new null package private protected public return short static " +
2865
+ "super switch synchronized this throw throws transient true try typeof var void volatile while with yield";
2866
+ str.split(/\s+/).forEach(word => (statics.RESERVED_WORDS[word] = true));
2443
2867
  },
2444
2868
 
2445
2869
  statics: {
@@ -2450,8 +2874,13 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2450
2874
  * @param className {String}
2451
2875
  * @returns {String}
2452
2876
  */
2453
- getSourcePath: function(library, className) {
2454
- return pathModule.join(library.getRootDir(), library.getSourcePath(), className.replace(/\./g, pathModule.sep) + library.getSourceFileExtension(className));
2877
+ getSourcePath(library, className) {
2878
+ return pathModule.join(
2879
+ library.getRootDir(),
2880
+ library.getSourcePath(),
2881
+ className.replace(/\./g, pathModule.sep) +
2882
+ library.getSourceFileExtension(className)
2883
+ );
2455
2884
  },
2456
2885
 
2457
2886
  /**
@@ -2461,8 +2890,13 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2461
2890
  * @param className {String}
2462
2891
  * @returns {String}
2463
2892
  */
2464
- getOutputPath: function(analyser, className) {
2465
- var filename = pathModule.join(analyser.getOutputDir(), "transpiled", className.replace(/\./g, pathModule.sep) + ".js");
2893
+ getOutputPath(analyser, className) {
2894
+ var filename = pathModule.join(
2895
+ analyser.getOutputDir(),
2896
+ "transpiled",
2897
+ className.replace(/\./g, pathModule.sep) + ".js"
2898
+ );
2899
+
2466
2900
  return filename;
2467
2901
  },
2468
2902
 
@@ -2471,9 +2905,9 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2471
2905
  * @param className
2472
2906
  * @returns {*|null}
2473
2907
  */
2474
- getNamespace: function(className) {
2908
+ getNamespace(className) {
2475
2909
  var m = className.match(/^([^.]+)\./);
2476
- return (m && m[1])||null;
2910
+ return (m && m[1]) || null;
2477
2911
  },
2478
2912
 
2479
2913
  /**
@@ -2486,8 +2920,8 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2486
2920
  * use https://github.com/alecsgone/jsx-render in your application's code.
2487
2921
  */
2488
2922
  JSX_OPTIONS: {
2489
- "pragma": "qx.html.Jsx.createElement",
2490
- "pragmaFrag": "qx.html.Jsx.FRAGMENT"
2923
+ pragma: "qx.html.Jsx.createElement",
2924
+ pragmaFrag: "qx.html.Jsx.FRAGMENT"
2491
2925
  },
2492
2926
 
2493
2927
  /**
@@ -2618,10 +3052,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2618
3052
  "__filename"
2619
3053
  ],
2620
3054
 
2621
- RHINO_GLOBALS: [
2622
- "Packages",
2623
- "java"
2624
- ],
3055
+ RHINO_GLOBALS: ["Packages", "java"],
2625
3056
 
2626
3057
  RESERVED_WORDS: null,
2627
3058
 
@@ -2630,9 +3061,9 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2630
3061
  * not the one available in qx.core.Environment._defaults because we need to use the version which is appropriate
2631
3062
  * for the version of Qooxdoo being compiled, not the one that this CLI is compiled with
2632
3063
  */
2633
- ENVIRONMENT_CONSTANTS: {
3064
+ ENVIRONMENT_CONSTANTS: {
2634
3065
  // an always-true key (e.g. for use in qx.core.Environment.filter() calls)
2635
- "true": true,
3066
+ true: true,
2636
3067
  // old settings retTrue
2637
3068
  "qx.allowUrlSettings": false,
2638
3069
  "qx.allowUrlVariants": false,
@@ -2667,5 +3098,4 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2667
3098
  "qx.promise.longStackTraces": true
2668
3099
  }
2669
3100
  }
2670
-
2671
3101
  });