ECMAScript Language Types. Undefined Type. Null Type. Boolean Type. String(Each element is considered to be a single. UT
[[Value]]
Both are standing for a same property but with different definition attributes.http://
[[Configurable]](Determin whether delete or change the attributes except [[value]])
technet.microsoft.com/zh-cn/magazine/dd548687(de-de,VS. 94).aspx
[[Writeable]] Named data property(Attributes) [[Emunerable]]
Undefined Type
[[Set]](assignment)
Null Type
ECMAScript Language Types
[[Get]](retrieval) Named accessor property(Attributes) [[Emunerable]]
Boolean Type [[Configurable]]
Property Number Type
[[Prototype]]
String(Each element is considered to be a single UTF-16 code unit) Type - The set of all finite ordered sequences of zero or more 16-bit unsigned inter values
[[Class]] All objects [[Extensiable]] Internal property
[[Get]]
Object(A collection of properties) Type [[GetOwnProperty]]
Type
[[GetProperty]] [[Put]] List Type(explain the evaluation of argument lists in
[[CanPut]]
new expressions, in function calls, and in other algorithms where a simple list of values is needed )
[[HasProperty]]
Completion Type(used to explain the behaviour of statements (break, continue, return and throw) )
[[Delete]]
IsDataDescriptor(Desc) - Desc = {[[value]]:42, [[writeable]]:false}
[[DefaultValue]]
Specification Types(describe the semantics of
IsAccessorDescriptor(Desc)
ECMAScript language constructs and ECMAScript language types )
IsGenericDescriptor(neither data nor accessor desc)
[[DefineOwnProperty]]
Property Descriptor and Property Identifier Types FromPropertyDescriptor(Desc) [[PrimitiveValue]]
ToPropertyDescriptor(Obj) Reference Type(used to explain the behaviour of such operators as delete, typeof, and the assignment operators ) - A Reference consists of
operate on references
[[Construct]]
GetValue(V) Some objects
[[Call]]
PutValue(V)
three components, the base value, the referenced name and the Boolean valued strict reference flag
[[HasInstance]] [[Scope]]
access the components of references(The base value is either undefined, an Object, a Boolean, a String, a Number, or an environment record,A base value of undefined indicates that the reference could not be resolved to a binding )
[[FormalParameters]]
GetBase(V)
[[Code]]
GetReferencedName(V)
[[TargetFunction]] Lexical Environment and Environment record Types
IsStrictReference(V) [[BoundThis]] HasPrimitiveBase(V)
ECMAScript
[[BoundArguments]]
Source(>Unocode 3.0, unsigned utf-16)
Global Code
IsPropertyReference(V) [[Match]]
Eval Code
IsUnresolvableReference(V)
Executable Code
[[ParameterMap]]
Function Code NewDeclarativeEnvironment (E) NewObjectEnvironment (O, E)
Executable Environment VariableEnvironment(Identifies the Lexical
Executable Context
Environment whose environment record holds bindings created by VariableStatements and FunctionDeclarations within this execution context.)
Environment Operation
LexicalEnvironment(define the association of
The Global Environment(The global environment is a
Identifiers to specific variables and functions based upon the lexical nesting structure of ECMAScript code )
GetIdentifierReference (lex, name, strict)
unique Lexical Environment which is created before any ECMAScript code is executed. The global environment‘s Environment Record is an object environment record whose binding object is the global object. The global environment‘s outer environment reference is null. )
ThisBinding declarative environment records outer Lexical Environment
HasBinding(N)
Records object environment records
Components WhiteSpace
SetMutableBinding(N,V, S)
Environment Record
Identifier Keyword
GetBindingValue(N,S)
LineTerminator InputElementDiv
Comment
All IdentifierName FutureReservedWord Punctutor
Token DivPunctuator
NumberLiteral
Literal Grammar StringLiteral WhiteSpace InputElementRegExp LineTerminator Comment
Token
RegularExpressionLiteral
ReservedWord
CreateMutableBinding(N, D)
methods
DeleteBinding(N) ImplicitThisValue()
NullLiteral CreateImmutableBinding(N) BooleanLiteral
declarative records(Special - mutable or immutable) InitializeImmutableBinding(N,V)