amber
Version:
An implementation of the Smalltalk language that runs on top of the JS runtime.
918 lines (777 loc) • 17.7 kB
Plain Text
0.22.1:
+ Class >>
+ provided
+ Number >>
+ provided
0.22.0:
* Deprecate Exception >> resignal. Should have been #pass.
+ Compiler >>
+ ast:forClass:protocol:
+ cleanCodeGenerator
+ codeGenerator
+ forClass:protocol:
+ Exception
+ outer
+ pass
+ JSObjectProxy >>
+ removeKey:
+ Number >>
+ ln1p
+ SmalltalkImage >>
+ postLoad
- AmberBootstrapInitialization class >>
- initializeClasses
- ClassBuilder >>
- setupClass:
- Compiler >>
- compileNode:forClass:package:
- ProtoObject
- asJSON
- asJavascript
- SmalltalkImage >>
- packageAt:
- amber/boot api >>
- nextId
0.21.1:
+ ClassBuilder >>
+ class:instanceVariables:
+ JSObjectProxy class >>
+ null
+ undefined
- ClassBuilder >>
- basicClass:instanceVariableNames:
0.21.0:
* Deprecate SmalltalkImage >> existsJsGlobal:
+ Number >>
+ bitAnd:
+ bitNot
+ bitOr:
+ bitXor:
+ printStringBase:
+ Platform class >>
+ includesGlobal:
0.20.0:
* Internal kernel fields naming changes.
+ amber/boot api >>
+ traitsOrClasses
- SmalltalkImage >>
- legacyGlobalJsVariables
- amber/boot >>
- nil
- dnu
- amber/boot api >>
- classes
0.19.1:
* Deprecate amber/boot api nextId, prop globalJsVariables.
* Deprecate ProtoObject >> identityHash.
* Deprecate SmalltalkImage >> packageAt: in favour of explicit #packageAt:if{Absent,Present}:.
+ AmberBootstrapInitialization class >>
+ run
+ initializeClasses
+ organizeClasses
+ organizeMethods
+ Behavior >>
+ basicOrganization
+ basicOrganization:
+ ClassOrganizer >>
+ theClass
+ ClassOrganizer class >>
+ on:
+ Compiler class >>
+ eval:
+ JavaScriptException >>
+ shouldBeStubbed
+ wrap
+ Message class >>
+ selector:arguments:notUnderstoodBy:
+ MethodContext >>
+ stubHere
+ stubToAtMost:
+ NonBooleanReceiver class >>
+ signalOn:
+ Package >>
+ evalBlock
+ evalBlock:
+ Package class >>
+ named:javaScriptDescriptor:
+ SmalltalkImage >>
+ packageDictionary
+ packageAt:ifPresent:
+ TBehaviorProvider >>
+ methodOrganizationEnter:andLeave:
+ TMasterBehavior >>
+ definedMethods
+ enterOrganization
+ leaveOrganization
+ Trait >>
+ basicOrganization
+ basicOrganization:
+ UndefinedObject >>
+ ==
+ Number >>
+ min:max:
+ degreesToRadians
+ radiansToDegrees
+ arcTan:
+ between:and:
+ Number class >>
+ radiansPerDegree
+ Point >>
+ dotProduct:
+ normal
+ angle
+ normalized
+ r
+ corner:
+ extent:
+ rectangle:
+ Rectangle >>
+ =
+ corner
+ origin
+ containsPoint:
+ containsRect:
+ printOn:
+ Rectangle class >>
+ origin:corner:
+ origin:extent:
+ point:point:
- Package >>
- basicName:
- basicImports
- ProtoObject >>
- isSameInstanceAs:
- ObjectTest >>
- testIdentityHash
- amber/boot api >>
- reservedWords (with the hope no one uses it directly)
0.19.0:
* Remove class Thenable, add trait TThenable.
* Behavior / Trait hierarchy uses traits.
+ NativeFunction class >>
+ isNativeFunction:
+ IRInstructions >>
+ isSelf
+ isSuper
+ IRVariable >>
+ isSelf
+ isSuper
+ ScopeVar >>
+ isSelf
+ isSuper
+ PseudoVar >>
+ isSelf
+ isSuper
+UndefinedObject >>
+ identityHash
+ value
+ amber/boot >>
+ nilAsValue
- IRSend >>
- isSuperSend
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 >>
+ nilAsReceiver
- NativeFunction class >>
- constructor:
- constructor:value:
- constructor:value:value:
- constructor:value:value:value:
0.16.1:
* Deprecate $boot.dnu (use $boot.nilAsClass).
+ amber/boot >>
+ 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
+ api
+ amber/{devel,deploy,lang} exports
+ api
- ProtoObject class >>
- heliosClass
- Object class >>
- heliosClass
- amber/boot
- vm
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: