0.19.0:

* Remove class Thenable, add trait TThenable.

+ NativeFunction class >>
  + isNativeFunction:


0.18.3:

* Move {add,remove}Element from Array.prototype to kernel API.
* New superclass of Behavior named BehaviorBody, pushed up some methods.
  * Represents named holder of methods; hierarchy and instantiation left to Behavior.
* Add class Trait as subclass of BehaviorBody.
* Add class TraitTransformation.
* Deprecate #asJSON in favour of #asJavaScriptObject.
* Deprecate #asJavascript in favour of #asJavaScriptSource.

+ BehaviorBody >>
  + setTraitComposition:
  + traitCompositionDefinition
  + traitUsers
  + allSubclassesDo:
  + superclass
+ Trait
  + allInstanceVariableNames
  + allSubclassesDo:
  + asJavascript
  + asTraitComposition
  + category
  + classTag
  + definition
  + package
  + superclass
  + theMetaClass
  + theNonMetaClass
  + exportBehaviorDefinitionTo:using:
  + traitUsers
  + package:
+ Trait class >>
  + named:package:
  + named:uses:package:
+ TraitTransformation
  + -
  + @
  + addAliases:
  + addExclusions:
  + aliases
  + asJSON
  + asJavascript
  + asTraitComposition
  + asTraitTransformation
  + definition
  + exclusions
  + initialize
  + postCopy
  + trait
  + trait:
+ Collection >>
  + copyWithout:
+ SequenceableCollection >>
  + reverseDo:
+ Array >>
  + asTraitComposition
+ amber/boot api >>
  + addElement
  + removeElement
  + wrapJavaScript
+ CharacterArray >>
  + asSymbolPrintOn:
  + symbolPrintString
+ String >>
  + isSelector
+ StringStream >>
  + print:
  + printSymbol:
+ Package >>
  + traitCompositions
+ Class >>
  + subClass:
  + subClass:uses:
  + subClass:uses:instanceVariables:
  + subClass:uses:instanceVariables:category:
  + subClass:uses:instanceVariables:classVariables:poolDictionaries:category:
  + subClass:uses:instanceVariables:package:
+ UndefinedObject >>
  + subClass:
  + subClass:uses:
  + subClass:uses:instanceVariables:
  + subClass:uses:instanceVariables:category:
  + subClass:uses:instanceVariables:classVariables:poolDictionaries:category:
  + subClass:uses:instanceVariables:package:
+ Metaclass >>
  + uses:instanceVariableNames:

- Association >>
  - importsString
- String >>
  - importsString
- AbstractExporter
  - classNameFor:
- Exporter >>
  - jsClassNameFor:


0.18.2:

* Add Platform-DOM package with DOM-related stuff.
  * Platform-DOM not loaded by default. Packages that will use it will import it.

+ PlatformDom class >>
  + isFeasible
  + isDomNode:
  + newCustomEvent:detail:
  + toArray:
+ CharacterArray >>
  + asDomNode
+ Collection >>
  + asDomNode
+ JSObjectProxy
  + asDomNode
+ String
  + htmlTextContent


0.18.1:

+ ASTNode >>
  + withTail:

- SendNode >>
  - valueWithReceiver:


0.18.0:

* Remove class RethrowErrorHandler (hack for cli before 0.12.3).
* Add Kernel-Dag package with abstract DAG-node and DAG-node visitor.
* Some internal API changes in Compiler-* (including the move to DAG-node).

- Object >>
  - throw:


0.17.0:

* Remove classes InterfacingObject, PlatformInterface.
* Deprecate $boot.nil (use $boot.nilAsReceiver).

+ amber/boot api >>
  + nilAsReceiver

- NativeFunction class >>
  - constructor:
  - constructor:value:
  - constructor:value:value:
  - constructor:value:value:value:


0.16.1:

* Deprecate $boot.dnu (use $boot.nilAsClass).

+ amber/boot api >>
  + nilAsClass


0.16.0:

* Deprecate ClassBuilder >> setupClass:
* $core.initialize now returns a Promise
* $core.addClass now returns the class

+ amber/boot api >>
  + send2
  + traverseClassTree
+ Promise class >>
  + new

- amber/boot api >>
  - wrapClassName
  - send
  - allSubclasses
- AbstractCodeGenerator
  - classNameFor:


0.15.1:

* Thenable class added
* Promise class added, wraps JS Promise, subclass of Thenable

+ Thenable >>
  + catch:
  + on:do:
  + on:do:catch:
  + then:
  + then:catch:
  + then:on:do:
  + then:on:do:catch:
+ JSObjectProxy >>
  + catch:
  + on:do:
  + on:do:catch:
  + then:
  + then:catch:
  + then:on:do:
  + then:on:do:catch:
+ amber/boot api
  + seamless
+ Promise class >>
  + new:
  + forBlock:
  + value:
  + signal:
  + all:
  + any:


0.14.18:

* Some internal API changes in Compiler-*.


0.14.14:

* InterfacingObject >> ajax: deprecated
* PlatformInterface class deprecated
* Class BrowserInterface removed
* Class Terminal, BrowserTerminal added
* Class Platform, BrowserPlatform added

+ Environment >>
  + renamePackage:to:
+ Platform class >>
  + globals
  + newXhr
+ Terminal class >>
  + alert:
  + confirm:
  + prompt:
  + prompt:default:
SmalltalkImage >>
  + existsJsGlobal:

- PlatformInterface class >>
  - initialize
  - setWorker:


0.14.12:

+ JSObjectProxy >>
  + putOn:
+ ProtoStream >>
  + nextPutJSObject:


0.14.11:

* Basic streaming protocol extracted from Stream to ProtoStream

+ Object >>
  + in:
+ JSObjectProxy >>
  + in:


0.14.10:

+ JSObjectProxy class >>
  + addObjectVariablesTo:ofProxy:
  + compareJSObjectOfProxy:withProxy:
  + forwardMessage:withArguments:ofProxy:
  + jsObject:ofProxy:
  + lookupProperty:ofProxy:

- JSObjectProxy >>
  - jsObject:
  - lookupProperty:
  - compareJSObjectWith:
  - addObjectVariablesTo:
  - forwardMessage:withArguments:


0.14.4:

+ AmdExporter >>
  + importsForOutput:
+ AbstractCodeGenerator >>
  + currentPackage
  + currentPackage:
+ Compiler >>
  + currentPackage
  + currentPackage:
  + compile:forClass:protocol:
  + compileNode:forClass:package:
+ SemanticAnalyzer >>
  + thePackage
  + thePackage:
  + isVariableUndefined:inPackage:

- Compiler >>
  - compile:
  - compile:forClass:
  - compileExpression:
- SemanticAnalyzer >>
  - isVariableGloabllyUndefined:
- Behavior >>
  - compile:


0.14.3:

* #heliosClass is now #classTag

+ Compiler >>
  + eval:forPackage:
+ Behavior >>
  + packageOfProtocol:
+ Exporter >>
  + exportPackageContextOf:on:
  + exportPackageImportsOf:on:
+ Package >>
  + basicImports
  + imports
  + imports:
  + importsDefinition
  + importsFromJson:
  + importsAsJson
  + sortedImportsAsArray
  + validateImports:
+ Package class >>
  + named:imports:transport:
+ Association >>
  + importsString
+ String >>
  + importsString
+ ProtoObject >>
  + ifNil:
  + ifNil:ifNotNil:
  + ifNotNil:
  + ifNotNil:ifNil:
  + isNil
  + notNil

- Object >>
  - ifNil:
  - ifNil:ifNotNil:
  - ifNotNil:
  - ifNotNil:ifNil:
  - isNil
  - notNil


0.14.1:

* NativeFunction class >> constructor:[value:...] deprecated

+ NativeFunction class >>
  + constructorNamed:
  + constructorNamed:value:
  + constructorNamed:value:value:
  + constructorNamed:value:value:value:
  + constructorOf:
  + constructorOf:value:
  + constructorOf:value:value:
  + constructorOf:value:value:value:
  + functionNamed:
  + functionNamed:value:
  + functionNamed:value:value:
  + functionNamed:value:value:value:
  + functionNamed:valueWithArgs:
  + functionOf:
  + functionOf:value:
  + functionOf:value:value:
  + functionOf:value:value:value:
  + functionOf:valueWithArgs:
  + methodOf:this:
  + methodOf:this:value:
  + methodOf:this:value:value:
  + methodOf:this:value:value:value:
  + methodOf:this:valueWithArgs:
+ SmalltalkImage >>
  + optOut:
  + cancelOptOut:


0.14.0:

+ Object >>
  + asJQuery
  + asJQueryInContext:
+ BlockClosure >>
  + asJQuery
  + asJQueryInContext:

- AnnouncementSubscription >>
  - block
  - block:
- Collection >>
  - contains:
- String >>
  - asSelector
  - asJavaScriptSelector
- SmalltalkImage >>
  - at:
  - at:ifAbsent:
  - at:put:
  - current
  - vm
  - createPackage:properties:
- MethodContext >>
  - temps
- Object >>
  - try:catch:


0.13.2:

+ SourceArea class >>
  + codeMirror


0.13.1:

* String >> asSelector is now String >> asJavaScriptMethodName
* String >> asJavaScriptSelector is now String >> asJavaScriptPropertyName
* smalltalk.selector is now smalltalk.st2js
* smalltalk.convertSelector is now smalltalk.js2st
* Collection >> ifEmpty:ifNotEmpty: family passes self to ifNotEmpty: block
* Smalltalk vm is now Smalltalk core
* boot.js's .vm is now .api
* amber load sets' .vm is now .api
* Internal variables smalltalk/globals/_st are now $core/$globals/$recv

+ smalltalk.
  + accessJavaScript
+ Object >>
  + postMessageTo:
  + postMessageTo:origin:
+ Class >>
  + heliosClass
+ SmalltalkImage >>
  + core
+ amber/boot exports
  + api
+ amber/{devel,deploy,lang} exports
  + api

- ProtoObject class >>
  - heliosClass
- Object class >>
  - heliosClass


0.12.6:

+ String >>
  + value:
+ ProtocolAnnouncement >>
  + package
+ Behavior >>
  + isTestClass
+ Package >>
  + isTestPackage
+ amber/{devel,deploy,lang} exports
  + nil
+ amber/helpers exports
  + nil


0.12.4:

* Package Canvas renamed to Web

* Object >> try:catch: deprecated in favour of BlockClosure >> tryCatch:

+ Announcer >>
  + on:do:for:
+ Node >>
  + navigationNodeAt:ifAbsent:
+ BlockClosure >>
  + tryCatch:
+ Environment >>
  + evaluate:for:
+ AmberCli >>
  + version:
+ Object >>
  + deprecatedAPI:
- Environment >>
  - eval:on:
  - evaluateString:on:


0.12.3:

* Package Import-Export renamed to Kernel-ImportExport
* A dozen of methods moved from Object to ProtoObject

* HashedCollection >> at:ifAbsentPut: pushed up to SequenceableCollection
* HashedCollection >> , is now allowed (removed shouldNotImplement)
* HashedCollection and Dictionary both subclasses of AssociativeCollection
* Smalltalk class moved to SmalltalkImage class, Smalltalk is now global var
* Smalltalk current deprecated in favour of Smalltalk
* Smalltalk at:[put:] deprecated in favour of Smalltalk globals at:[put:]
* <smalltalk.ClassName> deprecated in favour of <globals.ClassName>

+ CompiledMethod >>
  + defaultProtocol
+ Behavior >>
  + compile:protocol:
  + removeProtocolIfEmpty:
+ Package >>
  + load
  + loadFromNamespace:
+ Package class >>
  + load:
  + load:fromNamespace:
+ PackageTransport >> load
+ PackageHandler >> load:
+ AmdPackageHandler >> load:
+ Set >> removeAll
+ AssociativeCollection class
+ BucketStore class
+ SmalltalkImage >>
  + globals
  + vm
  + settings
+ Setting class
+ String >>
  + asSetting
  + asSettingIfAbsent:
  + settingValue
  + settingValueIfAbsent:
  + settingValue:
+ Smalltalk global variable

- CompiledMethod >>
  - category: (use #protocol:)
  - defaultCategory
- Behavior >> compile:category:
- HTMLCanvas class >>
  - browserVersion
  - isMSIE
  - isMozilla
  - isOpera
  - isWebkit


0.12.2:

* Collection >> contains: is deprecated in favor of anySatisfy:


+ Announcer >> on:doOnce:
+ String >>
  + uriEncoded
  + uriDecoded
  + uriComponentEncoded
  + uriComponentDecoded
+ Collection >>
  + removeAll
  + ifEmpty:ifNotEmpty:
  + ifNotEmpty:ifEmpty:
  + anyOne
  + noneSatisfy:
  + anySatisfy:
  + allSatisfy:


0.12.0:

* SmalltalkMethodContext.prototype.fillBlock() takes a third 'index' parameter
* Existing classes moved to new KernelInfrastructure package
* ImporterExporter
  * are now StreamExporters
  * aware of AMD namespaces
  * support transport types and commit channels


+ Node >>
  + nextChild
  + method
  + postCopy
  + isCascadeNode
  + isLastChild
+ BlockNode >>
  + nextNode:
  + nextChild
+ SendNode >>
  + isCascadeSendNode
  + shouldBeAliased
+ CompiledMethod >> sendTo:arguments:
+ Array >>
  + addFirst:
  + removeLast
+ Number >>
  + ceiling
  + floor
  + asNumber
  + //
  + cos
  + sin
  + tan
  + arcCos
  + arcSin
  + arcTan
  + log
  + log:
  + raisedTo:
  + sign
  + **
  + ln
  + e
+ String class >> esc
+ String >>
  + asMutator
  + capitalized
  + isCapitalized
+ JSProxy >> printString
+ Behavior >>
  + ownProtocols
  + ownMethods
+ JSStream >> nextPutSendIndexFor:
+ InterfacingObject class
+ Interpreter class
+ DocumentFragmentTag class
+ AbstractExporter class
+ PlatformInterface class


- Node >> extent
- JSStream >> nextPutStatement:with:
- Smalltalk.installSuperclass()
- ClassReferenceNode class (now handled via VariableNode)


0.11.0:

* AnnouncementSubscription use #valuable: instead of #block: (deprecated)
* AbstractCodeGenerator inherits from Object, not NodeVisitor
* Object>>printString
* replace >>printString with >>printOn:
* replace >>storeString with >>printString
* PackageLoader is now PackageHandler (>>commit: >>setupPackagenamed:prefix: >>ajaxPutAt:data:
* Package>>fetch: is now Package>>load:
* Package>>fetch:prefix: is now Package>>load:prefix:
* Queue>>front replaced by Queue>>next
* Queue>>frontIfAbsent: replaced by Queue>>nextIfAbsent:
* Queue>>back: replaced by Queue>>nextPut:
* smalltalk.addMethod() does not use explicit JS selector
* JSObjectProxy>>canForwardMessage: replaced by use of JSObjectProxy>>lookupProperty: with asJavaScriptSelector
* JSObjectProxy>>forwardMessage: replaced by explicit JSObjectProxy>>forwardMessage:withArguments:
* String>>asJavaScriptSelector moved to Kernel-Objects package

+ Object>>asString
+ Object>>putOn:
+ String>>isVowel
+ Collection>>putOn:
+ CharacterArray>>putOn:
+ Stream>><<
+ Stream>>write
+ SequenceableCollection>>newStream
+ SequenceableCollection>>readStream
+ SequenceableCollection>>stream
+ SequenceableCollection>>streamClass
+ SequenceableCollection>>writeStream
+ Collection>>isImmutable
+ Stream>>nextPutString:
+ StringStream>>nextPutString:
+ JSStream>>nextPutClassRefFunction:
+ String>>crlfSanitized
+ inlined Block now also responds to >>value:
+ Parser: split literal into runtimeLiteral and parseTimeLiteral
+ Parser: write #(4 #(5 6 #()) 7) as #(4 (5 6 ()) 7)
+ Parser: write #(#on:do: #Object) as #(on:do: Object)
+ Parser: Symbols for binarie selectores
+ Package>>commit
+ AIContext>>initializeLocals
+ ASTInterpreter>>withBlockContext:
+ smalltalk.allSelectors()
+ Object>>isCompiledMethod
+ Object>>isPackage
+ Object>>isBehavior
+ ClassMoved Announcemen class
+ Behavior>>includesBehavior:
+ Environment>>classes
+ Environment>>allSelectors
+ Environment>>removeProtocol:
+ Environment>>renameProtocol:to:in:
+ CompiledMethod>>protocol:
+ Smalltalk>>globalJsVariables
+ Smalltalk>>addGlobalJsVariable:
+ Smalltalk>>deleteGlobalJsVariable:


- Object>>storeOn:
- Object>>log:block:
- Object>>printNl
- Compiler-IR.st >>javascriptSelector
- Compiler-IR.st >>nextPutVar:
- Kernel-Collections.st >>asSuperSelector
- Collection>>readStream
- Collection>>stream
- Collection>>streamClass
- Collection>>writeStream
- Symbol class (replaced with String)
- IRInlinedNonLocalReturn class
- IRInlinedSend>>nonLocalReturnInliner
- IRNonLocalReturnInliner class
- Package>>dependencies
- Package>>dependencies:
- Package>>properties
- Package>>jsProperties
- Package>>jsProperties:
- Package>>propertiesAsJSON
- Package>>propertyAt:
- Package>>propertyAt:ifAbsent:
- Package>>propertyAt:put:
- Browser>>ajaxPutAt:data: