ECMAScript - GitHub

1 downloads 117 Views 86KB Size Report
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)