UNPKG

24.1 kBMarkdownView Raw
1## 2.0.0-alpha.158
2* Reorganize prebuilt files into dist/
3
4## 2.0.0-alpha.157
5* Add jspm configuration in package.json
6
7## 2.0.0-alpha.156
8* Add #__inited__ hook for class instance initialization
9* All custom components defaults to display:block
10* Fix: Don't inject hmr.js script into html assets when building
11* Fix: Generate html files in public directory
12
13
14## 2.0.0-alpha.155
15* Allow `$envvar$` as first argument of implicit calls (#571)
16* Allow `super` in `extend class/tag`
17* Add experimental support for `extend someObject`
18* Variable / parameter named `self` used for implicit self in scope
19* Throw error for non-self tags in tag declaration body
20* Allow accessing array elements from end with literal numbers like `array[-1]`
21
22## 2.0.0-alpha.154
23* Include precompiled browser-version of library to make it work with jspm
24* Fix issue with html parser
25* Fix issue with `<input value=...>` not working in certain cases
26* Add optional static file serving for `imba serve`
27
28## 2.0.0-alpha.153
29* Fix issue with prop watchers not compiling correctly
30
31## 2.0.0-alpha.152
32* Correctly parse comments inside multi-line tag literals
33* Readable names for generated (internal) variables
34* Tag literals act as block scopes for variable declarations
35
36## 2.0.0-alpha.151
37* Fix interpolated style values in tag-tree selectors
38
39## 2.0.0-alpha.150
40* Remove charset:utf8 option from esbuild
41
42## 2.0.0-alpha.149
43* Fix regression with font-size presets (#569)
44
45## 2.0.0-alpha.148
46* Allow declaring return type via `def method\returntype arg1, ...`
47* Fix crash when inlining sourcemaps on node 16+ (#567)
48* Overhaul `extend class` code generation for better tooling support
49* BREAKING: Compile predicate identifiers `name?` to unicode `nameΦ` and
50 dashed identifiers `one-two-three` to `oneΞtwoΞthree` to avoid potential
51 naming collisions and improve tooling support. If you previously relied on
52 dashed identifiers converting to camelCase while interacting with an
53 external library - this will no longer work. Ie `window.add-event-listener`
54 will not work since `window` does not have an `addΞeventΞlistener` property.
55 See [#568](https://github.com/imba/imba/pull/568) for more info.
56
57## 2.0.0-alpha.147
58* Fix regression resulting in nested assets being rebuilt in incorrect folder
59
60## 2.0.0-alpha.146
61* Added `--asset-names` and `--html-names` build options for controlling the generated paths
62* Tweaked format of generated manifest
63* Fixed issue with generated stylesheets being blank
64* Automatically include Link preload headers when serving through imba
65* Allow all valid RegExp flags in literal regexes
66* Generate class augmentations (`extend class/tag`) in tsc mode
67* Use setAttribute for non-idl element attributes
68
69## 2.0.0-alpha.145
70* Fix bundler crash when parsing html entrypoints with doctype
71* Fix regression where imba `-w` would not detect changes in unhashed outputs
72
73## 2.0.0-alpha.144
74* Experimental `<global>` slot to add global listeners from inside tags
75* `@event.outside` modifier that works in conjunction with `<global>` slot
76
77## 2.0.0-alpha.143
78* Remove use of String#replaceAll (unsupported before node 15.0.0)
79
80## 2.0.0-alpha.142
81* Don't crash when loading tags with `@intersect` listener on server
82* Fix svg parsing issue for large svg files (#543)
83* Fix incorrect dehydration when creating custom element on client directly via document.createElement
84* Inject asset imports in correct order relative to regular imports
85* Add support for `.eot` font file reference in stylesheets
86* Auto-generate combined stylesheet for server and client accessible via `<style src='*'>`
87* Stop auto-injecting styles for referenced assets when rendering `<html>` on server
88
89
90## 2.0.0-alpha.141
91* Support webp,avif,apng,gif images in bundler
92* Fixed missing first character in non-minified css output
93* Expose imba.commit++ on globalThis
94* Fix compilation issue with `if false` inside tag tree
95* Respect custom palettes in imbaconfig.json when building
96* Allow aliasing palettes in imbaconfig.json
97* Support inlined svg elements on server
98
99## 2.0.0-alpha.140
100* Improve output from `imba create`
101
102## 2.0.0-alpha.139
103* Stop bundler from crashing when generating worker
104
105## 2.0.0-alpha.138
106* Fix incorrect sourcemap paths with esbuild 0.9.7
107* Let server fail gracefully when accessing invalid asset urls
108
109## 2.0.0-alpha.137
110* Fix relative path for mac/linux
111
112## 2.0.0-alpha.136
113* Raise default browser-target from `edge16` to `edge18` due to esbuild warning
114* Make `imba create` executable on mac (#550)
115* Set default esbuild target to es2019 to transpile optional chaining++
116* Avoid using `-ad` in generated class-names due to adblockers (#531)
117
118## 2.0.0-alpha.135
119* Minor improvements to sourcemapping
120* Fixed `import type default` compilation
121
122## 2.0.0-alpha.133
123* Improved sourcemapping
124* Improved support for type annotations
125* Fixed crash in bundler
126
127## 2.0.0-alpha.132
128* Improve windows compatibility for bundler and `imba create`
129
130## 2.0.0-alpha.131
131* Serve hashed (cacheable) assets with `Cache-Control: max-age=31536000`
132* Remove `?v=xxxxxx` suffix from asset references generated with `--no-hashing`
133* Allow `"external":["builtins",...]` to externalize builtin node modules for other platforms than `node`
134* Add `-H` alias for the `--no-hashing` option
135
136## 2.0.0-alpha.130
137* Upgraded esbuild to v0.9.2
138* Automatically polyfill built-in node modules like buffer,stream,crypto etc when compiling for browser. Still experimental.
139
140## 2.0.0-alpha.129
141* Prevent `touchstart` event on iPad Pro in `@touch.prevent`
142* Fixed text in svg `<text>` elements (#482)
143
144## 2.0.0-alpha.128
145* Fixed image asset urls in SSR
146* Make bundler work with client entrypoint without any styles
147* Dispatch bubbling `resized` event from ResizeObserver
148
149## 2.0.0-alpha.127
150* Overhauled `@touch` to work be more consistent on touch devices
151* Add `@touch.round` event modifier
152
153## 2.0.0-alpha.126
154* Prevent `touchstart` event on iOS in `@touch.prevent`
155
156## 2.0.0-alpha.125
157* Make custom events cancelable by default
158* Make `@-webkit-scrollbar-*` style selectors work
159* Make core event modifiers work for `@touch` event
160* Fix issue where text selection did not work after `@touch`
161* Make `@touch.prevent` prevent scrolling via `touch-action:none`
162* Add `@important` style modifier
163
164## 2.0.0-alpha.124
165* Update built-in colors to follow Tailwind 2.0
166* Allow interpolating colors in runtime `<div[c:{mycolor}]>`
167* Fix deep selector `>>>` with multiple nested children
168
169## 2.0.0-alpha.123
170* Fix router crashing when event-related runtime code is tree-shaken
171
172## 2.0.0-alpha.122
173* Fix issue with type inferencing tags in certain cases
174* Add `suspend`, `unsuspend` component lifecycle methods
175* Improved router interface & internals
176
177## 2.0.0-alpha.121
178* Added `imba.serve` to `index.d.ts`
179* Fix serious regression in router causing crash
180
181## 2.0.0-alpha.120
182* Parse `fn await something` correctly
183* Improved router internals
184* Add internal `Node#attachToParent` and `Node#detachFromParent` methods
185* Preserve signed zero in output (Fixes #497)
186* Make hmr reloading work with raw html assets
187* Make `--no-hashing` cli option actually work
188* Build html entrypoints in correct dist folder
189* Add `imba create` command for creating project from template
190
191## 2.0.0-alpha.119
192* Add support for object spread syntax `{a:1, ...obj}`
193* Fix regression causing crash when generating css
194
195## 2.0.0-alpha.118
196* Only call imba.commit when events are actually handled
197
198## 2.0.0-alpha.117
199* Alias `tabindex` to `tabIndex` in tag attributes.
200* Fix scoping issue with css in tag trees
201* Add experimental router aliases/redirects support
202* Include preflight.css at root level of package
203
204
205## 2.0.0-alpha.116
206* Convert durations (`1s`, `150ms`, `60fps` etc) to ms-based numbers on compile-time
207
208## 2.0.0-alpha.115
209* Add `debounce` event modifier
210
211## 2.0.0-alpha.114
212* Add `no-minify` option to cli
213* Always compile `html` namespaced attributes to raw `setAttribute`
214
215## 2.0.0-alpha.113
216* Add `__realname` as an unaltered alias for `__filename`
217* Add support for selectors in tag tree - see [#490](https://github.com/imba/imba/issues/490)
218
219## 2.0.0-alpha.112
220* Show full version (including alpha number) in cli `imba --version`
221
222## 2.0.0-alpha.110
223* Add experimental `<tag autorender=interval>` inteface
224* Add `?v=hash` to asset urls when filename hashing is turned off
225* Add experimental support for `.html` entrypoints to `imba serve` and `imba build`
226* Add `abs` and `rel` shorthands for `position` style property
227* Fix memory leak when using `imba --watch`
228
229## 2.0.0-alpha.109
230* Support extending native tags `tag Purchase < form`
231* Allow defining global tags without dash in name
232
233## 2.0.0-alpha.108
234* Fix issue with `@nth-of-type`, `@nth-child` selectors
235* Improve internals of intersect event handling
236
237## 2.0.0-alpha.107
238* Add `asset.body` property for accessing raw content of assets
239
240## 2.0.0-alpha.106
241* Allow passing `rootMargin` options to intersect event
242* Fix issue in router related to hash links
243
244## 2.0.0-alpha.105
245* Fix issue with css property order
246
247## 2.0.0-alpha.102
248* changelog and docs coming soon. see imba.io
249
250## 2.0.0-alpha.60
251* Add `route-to.exact` modifier to router
252
253## 2.0.0-alpha.59
254* Add support for numeric separator `100_000`
255* Fix multiline regex parsing issues
256
257## 2.0.0-alpha.58
258* Allow setting innerHTML in SSR
259
260## 2.0.0-alpha.57
261* Update instantiation syntax in tests++
262
263## 2.0.0-alpha.56
264* Add `new Foo` instantiation syntax
265* Deprecate `Foo.new` instantiation syntax
266
267## 2.0.0-alpha.55
268* Allow local/exportable tags (uppercased tag declarations)
269* Allow interpolated tags inside strings in tag trees
270
271## 2.0.0-alpha.54
272* Allow getters and setters in object literals
273
274## 2.0.0-alpha.53
275* Allow media breakpoints in style selectors
276* Added max-width breakpoints
277
278## 2.0.0-alpha.52
279* Fix issue with nested `$reference` selectors
280* Allow router to work for regular links
281* Add route-to.replace modifier
282* Add route-to.sticky modifier
283
284## 2.0.0-alpha.51
285* No longer inheriting from CustomEvent as it is not supported in Safari
286* Fix input data binding issue
287* Added `before` and `after` style property modifiers
288* Added `prefix` as alias for `before.content`
289* Added `suffix` as alias for `after.content`
290
291## 2.0.0-alpha.50
292* Fix nested selector bug
293* Fix focus-within modifier
294* Add `:local` pseudo-class for only styling local children of component
295* Support `$reference` in selectors for targeting local referenced elements
296* Change `display` style property to accept multiple layout aliases
297* Add 1-digit color aliases (blue900 -> blue9 etc)
298
299## 2.0.0-alpha.49
300* Allow border and border-(top|right|bottom|left) to accept a single color value
301* Accept rgb/hsl/hex colors in text and border properties
302
303## 2.0.0-alpha.48
304* Added multi-purpose `text` style property for describing font-family, font-size, font-style, font-weight, text-decoration, text-transform, line-height, letter-spacing and color in a single property
305* Added shorthand style aliases for border-* and flex-*
306
307## 2.0.0-alpha.47
308* Added x, y, z, rotate, scale, scale-x, scale-y, skew-x, skew-y custom style properties
309* Extended transition property to accept colors, styles, sizes as properties and custom easings
310
311## 2.0.0-alpha.46
312* Added experimental syntax for css/styling. See [#334](https://github.com/imba/imba/pull/362)
313* Broke scoped css comment blocks until further notice
314
315## 2.0.0-alpha.45
316* Fix conditional rendering bug (#334)
317* Changed event syntax from `<div :click.stop.{method()}>` to `<div @click.stop=method()>`
318* Allow comments inside multiline tags
319* Include left/right event key modifiers
320* Improve resize and intersect events
321* Always bind data when using `<tag[my-data]>` syntax
322
323## 2.0.0-alpha.44
324* Improved lifecycle methods for components
325* Fix sourcemapping for env-flags
326
327## 2.0.0-alpha.43
328* Add syntax for element references `<div$reference>`
329* Fix problem with missing ResizeObserver in safari
330
331## 2.0.0-alpha.42
332* Fixed webpack imba/loader issues with scoped css
333* Add event wrapper for ResizeObserver
334* Add experimental router code
335* Add basic support for setting dom classes outside of templates
336* Allow calling imba.mount with a function
337* Rename #context api to $context
338* Rename parentContext to $parent
339
340## 2.0.0-alpha.40
341* Introduce decorators with `@decorator` syntax. See [#334](https://github.com/imba/imba/pull/334)
342* Allow declaring tag attributes. See [#335](https://github.com/imba/imba/pull/335)
343* Shorthand `!` for invoking parenless methods (`object.mymethod!`)
344* Implicit self is back (for good)
345
346## 2.0.0-alpha
347See [#263](https://github.com/imba/imba/issues/263) for an overview of changes
348
349## 1.5.2
350
351* Fixed #237 (CSS comments not working in SFC)
352* Fixed #240 (Build issues with font-properties in SFC)
353* Fixed #239 (Module not found: Error: Can't resolve 'important[...] in SFC)
354
355## 1.5.0
356* Add support for declaring native getters and setters using `get/set` instead of `def` keyword
357* Add support for compiling props to native getters and setters using `native` option (`prop name native: yes`)
358* Make svg tags and non-svg tags use same class naming scheme (#230)
359* Add experimental support for single-file-components
360
361## 1.4.8
362* Made splats compatible with ES6 containers like Set (#167)
363* Cache compilation for node runtime when 'IMBA_CACHE_DIR' process variable is set
364
365## 1.4.7
366* Make puppeteer tests work again
367* Fixed #203 (trigger data is null when supposed to be 0)
368
369## 1.4.6
370* Fix crash when packaging for webworker
371
372## 1.4.4
373* Fix bugs in analyzer returning incorrect locations for classes and methods
374* Include properties in analyzer entity output
375
376## 1.4.3
377* Support for `**` and `**=` operators (#192 by @taw)
378* Fix imbapack crash with newer webpack (#194 by @gdamjan)
379* Fix --stdio/-s option for imbac (#178 by @shreeve)
380* Make special variables in event handlers default to event methods
381* Include all global attributes on Imba.Tag
382
383## 1.4.2
384* Respect empty parens in event handlers (`<div :tap.someMethod()>`)
385* Allow special variables in event handlers (`<div :tap.someMethod($event,$data)>`)
386* Allow all aria-* attributes
387* Fixed bug where compiler could end up in faulty state
388* Lookup event handlers in owner-scope
389
390## 1.4.1
391* Make Imba.setInterval automatically commit on each interval
392* Compile is to === (instead of ==)
393* Compile isnt to !== (instead of !=)
394* Require Node >=8.0.0
395
396## 1.4.0
397* Introduce new root scope per file for more consistent self
398* Fix export const
399* Add `<input number=bool>` for numeric inputs
400* Only prevent native click if tap was prevented
401* Print out compiler warnings in imbac and webpack loader
402* Pass through stdio configuration from imbapack to webpack
403* Don't include comments by default in webpack loader
404* Disallow cross-scope calling of root 'def' functions (breaking change)
405
406## 1.3.3
407* Don't silence input events for form elements
408* Implement style.removeProperty on server
409* Improve mount/unmount performance
410
411## 1.3.2
412* Fix webpack4 compatibility
413* Improve svg support
414* Suppress setValue for input and textarea while editing
415
416## 1.3.1
417* Fix duplicate attributes in serverside rendering
418* Make popstate event notify schedulers
419* Make event manager delay adding listeners until needed
420* Optimize tag tree syncing
421
422## 1.3.0
423* Add support for event modifiers (e.g. `<div :keydown.enter.myHandler>`)
424* Add support for form input bindings (e.g. `<input[data:myField]>`)
425* Allow method definitions inside object literals
426* Better error reporting from parser when running through `imba` cli
427* Add automatic cache pruning for loops
428* Improve performance of setText
429* Improve performance of non-keyed tag lists
430* Implement radically improved inline caching strategy
431* Improve overall rendering performance
432* Allow all attributes on svg elements
433* 25% smaller library (now 57k minified, 15k gzipped)
434* Remove deprecated selector-syntax
435* Remove deprecated methods on Imba.Tag (object,width,height,append,prepend)
436* Remove deprecated methods on Imba.Event (keychar,keycombo)
437* Remove deprecated Imba.isClient and Imba.isServer
438
439## 1.2.1
440* Allow reconciler to work with tag-like objects
441* Make Imba.commit notify schedulers
442* Make sure schedulers are correctly activated and deactivated
443* Fix issue where process.version was not parsed correctly
444* Fix variable naming issue when compiling with sourceMaps
445* Fix let scoping where assignment is consumed by statement
446* Allow ivar-syntax in plain objects `{@ivar: value}`
447* Allow direct ivar access through `object@ivar`
448
449## 1.2.0
450* Compile to native `let`,`const` and `await` unless `--es5` is specified
451* Align `await` precedence with js
452* Support variable shadowing
453* Fix fat-arrow template parsing `<div.item => ...`
454
455## 1.1.1
456* Make `imbapack input.imba output.js` work without a config
457
458## 1.1.0
459* Introduce `module` keyword for singleton classes
460* Allow aliasing imports with `import x as y from ...`
461* Always escape attributes textContent when rendering on server
462
463## 1.0.1
464* Made Imbapack read options using the recommended way in Webpack 3.
465* Made Imba.mount schedule the target by default (fix)
466* Compiler returns correct location for classes and constants
467* Enable experimental native async/await behind —es6 option
468* Make imbapack commands platform-safe ([GavinRay97 · pr#102](https://github.com/somebee/imba/pull/102))
469* Deprecated implicit `Promise.all` wrapping of expr in `await *expr*` if expr instanceof Array
470
471## 1.0.0
472* Require 'imba' in each file - no longer depending on Imba being global
473* Introduced imbapack as intelligent wrapper around webpack
474* Introduced non-global tags
475* Allow multiple adjacent tags inside for-loops
476* Add `tag.mount` and `tag.unmount`
477* Allow setting css inline `<div css:height=100>`
478* Deprecated selector syntax
479* Deprecated various tag helpers
480* Tons of bugfixes and improvements
481
482## 0.14.5
483* `tag.initialize` can now be defined / overridden
484* Dynamic flags `<div .{flag}>` works as expected
485* Added more missing attributes to html elements
486* Allow defining properties with reserved names
487* `prop watch:` now accepts a Function
488* Minor bugfixes
489
490## 0.14.4
491* Add trailing semicolon to IIFE wrapper (#67)
492* Allow uppercase flags in tag (#64)
493* Setters return self by default (#56)
494* CLI will find index.imba, if exists within folder
495* Improved serverside rendering
496* Predeclare `_` in global scope
497
498## 0.14.3
499* Mixing tabs and spaces for indentation will now throw error
500* Internal refactoring
501* Moved internal build over to webpack
502* Bugfix: source maps should work again
503* Bugfix: compilation on windows finds correct path
504
505## 0.14.1
506* Fixed regression for awakening tags from client
507* Add width/height getters for tags
508* Add context getter for canvas
509* Removed deprecated code in dom.events
510* Add `Imba.Touch#tx` and `Imba.Touch#ty` for pos relative to target
511* Add Imba.Touch#capture for preventing all default behaviour of events
512* Handle touchcancel correctly
513* Deprecate Imba.Touch#suppress
514* Bugfix: right-click caused havok with mousebased Imba.Touch
515* Bugfix: watched attribute would not trigger correctly
516
517## 0.14.0
518* Removed IMBA_TAGS (must use Imba.TAGS)
519* Groundwork for arbitrary namespaces for tags (and local/private tags)
520* Added support for SVG
521* attr definitions will preserve dash in generated setAttribute
522* Removed description object for plain generated properties
523* Allow nested tag definitions (local to the parent scope)
524
525
526## 0.13.12
527* Error now includes the relevant code/lines in message - contributed by @sleewoo
528* Make scheduler register for next tick before running the current ticks
529* Bugfix: Regression where methods with trailing comment did not parse
530
531## 0.13.11
532* tag(domnode) will awaken domnode as native type if the custom tag is not defined
533* Bugfix: Parser should not treat `]` and `)` as implicit functions (issue#34)
534* Allow methods without body to parse correctly (closes issue#35)
535
536## 0.13.10
537* Bugfix: Regression where indented return broke certain tag trees
538* Bugfix: if branches without else does not return 0 when false (inside tag trees)
539* Bugfix: Improved error reporting in terminal
540
541## 0.13.9
542* Documented more of the runtime/stdlib
543* Adding prelim support for static analysis of tags,classes,methods++
544* `imba analyze` now takes `--entities` flag to export entities
545* Removed several undocumented and deprecated methods
546* Cleaned up code UglifyJS warned about when minifying runtime
547* Add failing test for known scoping bug (fix is underway for next release)
548* Bugfix: temp vars were declared (but not used) in certain situations
549
550## 0.13.8
551* Added scheduler for an official/approved way to schedule rendering
552
553## 0.13.7
554* Reworked tag rendering to work with non-string textual nodes again
555
556## 0.13.5
557* Fixed yet another regression
558
559## 0.13.4
560* Throw error when trying to spawn undefined tag
561* Fix regression with serverside rendering from 0.13.3
562
563## 0.13.3
564* Optimized rendering further
565* Bugfix: native tags no longer spawn with empty class attribute
566* Bugfix: wrong cachekeys in certain nested trees
567* Bugfix: (cond && <sometag>) were not cached in static trees
568* Bugfix: numerous edgecases with static trees
569
570## 0.13.2 (2015-10-09)
571
572* cache tags in for-loops by default (inside static trees)
573* call render in tag#commit by default
574* Improved sourcemaps
575* Tap and click events handled in more consistent manner
576* Added version of compiler that can run in a WebWorker
577* Various bugfixes
578
579## 0.13.1
580
581* Rework tag class structure
582
583## 0.13.0 (2015-09-19)
584
585* Bugfix: safe call `object:key?.method` parses correctly
586* Added support for data-attributes through tag#dataset method
587
588## 0.12.2 (2015-09-18)
589
590* Bugfix: parsing tags inside object literals
591* Bugfix: methods with optional arg and block arg compiles correctly
592* Bugfix: tag#prepend works for empty tag
593* Internal refactoring
594
595## 0.12.1 (2015-09-04)
596
597* Fix standalone compiler for browser
598* Renamed packaged compiler from compiler.js to imbac.js
599* Export standalone compiler to `Imbac` instead of `imbalang`
600* Returning self from default constructors
601
602## 0.12.0 (2015-08-24)
603
604* Preliminary support for source maps (through `--source-map-inline` option for ̀`imba watch` and `imba compile`)
605
606## 0.11.6 (2015-08-23)
607
608* Added `imba export-runtime` command to export the latest imba.js runtime.
609* Fix `imba watch` on Windows (issue #11)
610
611## 0.11.5 (2015-08-20)
612
613* Don't single children in Imba.static
614* Reworked how setHandler to bind directly to outer scope
615* Guard against loading the library multiple times
616
617## 0.11.4 (2015-08-19)
618
619* Added minified version of library and compiler
620* Remove need for classList (to support ie9)
621
622## 0.11.3 (2015-08-15)
623
624* Now caching static attributes on tags
625* More improvements to reconciler
626
627## 0.11.2 (2015-08-14)
628
629* Added window, document, parseInt, parseFloat as implicit global variables
630
631## 0.11.1 (2015-08-12)
632
633* Fixed issue in dom reconciler
634
635## 0.11.0 (2015-08-11)
636
637* Allow `new` and `char` as varnames
638* `tag#render` is called by default from `tag#build`
639* Slightly improved error reporting when using `:` in control-flow (like python)
640* Massively improved algorithm for reconciling dom trees (rendering for-loops etc will now be much more efficient) - contributed by @judofyr
641* Fixed issue when requiring imba through browserify
642
643## 0.10.0 (2015-08-05)
644
645* Add support for guarded loops: `... for x in ary when x > 10`
646* Add dynamic cachekey for tags using `<node@{mykey}>` inside loops
647* Add support for if/forin as first/only argument to implicit calls
648* Fixed bug where for-in could not be the first/only indented child in a tag.
649* Fixed regression with multiple nested parens in !(expressions)
650* Improved error reporting from terminal
651
652## 0.9.3 (2015-08-04)
653
654* Register 'module' as an automatic global variable, along with 'global', '__dirname', 'exports', 'console', 'process', 'setTimeout', 'setInterval', 'clearTimeout', 'clearInterval'. The timeout/interval are likely to be deprecated in next version.
655* added support for shebangs to top of files.
656 `#!/usr/bin/env imba` or similar shebangs will be kept and converted in the compiled js (to `#!/usr/bin/env node` etc)
657* Improved preservation of linebreaks, and removal of parens in compiled code.