HJS is based on the grammer and behaviour specified in [http://www.ecma-international.org/publications/standards/Ecma-262.htm ECMA-262, 3rd Edition] with additions and modifications from [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference JavaScript 1.5].

+

HJS is based on the grammar and behaviour specified in [http://www.ecma-international.org/publications/standards/Ecma-262.htm ECMA-262, 3rd Edition] with additions and modifications from [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference JavaScript 1.5].

Javascript is typically associated with the web dynamic pages and has been called [http://www.crockford.com/javascript/javascript.html The World's Most Misunderstood Programming Language]

Javascript is typically associated with the web dynamic pages and has been called [http://www.crockford.com/javascript/javascript.html The World's Most Misunderstood Programming Language]

-- Context is a scope chain, variable object, this and current function
type Ctx = ([ObjId], ObjId, ObjId, ObjId)
-- State is a context stack, object store and line and column of current statement being used.
type JSState = ([Ctx], Map ObjId Object,(Int,Int))
-- Compose state and error. The order is important, if it where the other way round state would be lost.
type InterpM = ErrorT Throwable (StateT JSState IO)

Properties on an object have a list of attributes which indicate if the property is to be included in enumeration, is writable etc. There are functions to get and set property values. The 'getProperty' function will traverse up the __proto__ chain looking for the property.