----------------------------------------
In 9.1.5 "[[GetOwnProperty]] (P)":
{1}
9.1.5 / step 1:
Return OrdinaryGetOwnProperty with arguments /O/ and /P/.
This is odd phrasing.
Either insert "the result of calling"
or use prefix-parenthesized notation.
(Other calls to this operation use the latter.)
----------------------------------------
In 9.1.6 "[[DefineOwnProperty]] (P, Desc)":
{2}
9.1.6 / step 1:
Return OrdinaryDefineOwnProperty with arguments /O/, /P/, and /Desc/.
This is odd phrasing.
Either insert "the result of calling"
or use prefix-parenthesized notation.
(Other calls to this operation are about equally divided.)
----------------------------------------
In 9.1.13 "ObjectCreate(proto, internalSlotsList) Abstract Operation":
{3}
9.1.13 / step 1:
If /internalslotsList/ was not provided, let /internalSlotsList/ be ...
s|slots|Slots|
----------------------------------------
In 9.2.2 "[[GetOwnProperty]] (P)":
{4}
9.2.2 / step 4:
Return v.
Italicize 'v'
----------------------------------------
In 9.2.4 "[[Call]] ( thisArgument, argumentsList)":
{5}
9.2.4 / step 8:
Let /needsThisWrapper/ to *false*.
s|to|be|
{6}
9.2.4 / step 10.a:
If /thisMode/ is `strict`, then let /thisValue/ to /thisArgument/.
s|to|be|
{7}
9.2.4 / step 10.b.i.1:
Let /thisValue/ to /calleeRealm/.[[globalThis]].
s|to|be|
{8}
9.2.4 / step 10.b.ii.1:
if Type(/thisArgument/) is not Object, then let /needsThisWrapper/ to *true*..
s|to|be|
Delete one of the final periods.
{9}
9.2.4 / step 10.b.ii.2:
Let /thisValue/ to /thisArgument/.
s|to|be|
{10}
9.2.4 / step 14.b:
Assert: /wrapperedThis/ not not an abrupt conpletion.
s|not not|is not|
{11}
9.2.4 / step 14.d:
Let /funcionEnv/ be /localEnv/'s environment.
s|funcion|function|
s|environment|environment record|
----------------------------------------
In 9.2.5 "FunctionInitialize Abstract Operation":
{12}
9.2.5 / step 10:
..., then set the [[ThisMode]] internal slot of /F/ to strict.
Put 'strict' in sans-serif.
{13}
9.2.5 / step 11:
Else set the [[ThisMode]] internal slot of /F/ to global.
Put 'global' in sans-serif.
----------------------------------------
In 9.2.13 "CloneMethod(function, newHome, newName) Abstract Operation":
{15}
9.2.13 / step 8.c.i:
Set the value of /new/'s [[MethodName]] internal slot
to the value of /functions/'s [[MethodName]] internal slot.
s|functions|function|
----------------------------------------
In 9.2.14 "Function Declaration Instantiation":
{16}
9.2.14 / step 5:
If /parameterNames/ has an duplicate entries, let /hasDuplicates/ be true.
Otherwise, let /hasDuplicates/ be false.
s|an|any|
Put 'true' and 'false' in bold.
{17}
9.2.14 / step 15:
If the value of the [[ThisMode]] internal slot of /func/ is lexical, then
Put 'lexical' in sans-serif.
{18}
9.2.14 / step 19:
If /needArgumentsBinding/ is *true*, then
s|need|needs|
{19}
9.2.14 / step 19.a:
If /strict/ is *true*, *then*, then
Delete bold 'then'.
{20}
9.2.14 / step 21.a:
Let /formalStatus/ be the result of performing IteratorBindingInitialisation ...
s|isation|ization|
{21}
9.2.14 / step 22.a:
Let /formalStatus/ be the result of performing IteratorBindingInitialisation ...
s|isation|ization|
{22}
9.2.14 / step 28.d:
Let /status/ PutValue(/fref/, /fo/).
After 'status', insert 'be'
----------------------------------------
In 9.3.1 "[[Call]] ( thisArgument, argumentsList)":
{23}
9.3.1 / step 6:
Perform any necessary implementation defined initialisation of /calleeContext/.
s|isation|ization|
----------------------------------------
In 9.3.2 "CreateBuiltinFunction(realm, steps, internaSlotsList) Abstract Op...":
{24}
9.3.2 / header:
CreateBuiltinFunction(realm, steps, internaSlotsList) Abstract Operation
s|interna|internal|
----------------------------------------
In 9.4.2 "Array Exotic Objects":
{25}
9.4.2 / para 2:
... They also have an [[ArrayInitialisationState]] internal slot.
s|isation|ization|
----------------------------------------
In 9.4.2.1 "[[DefineOwnProperty]] ( P, Desc)":
{26}
9.4.2.1 / step 3.a:
Let /oldLen/ be /oldLenDesc/.[[Value]].
'oldLenDesc' is used before its definition.
Move 3.a to after 3.c?
(and while you're there, move 3.d to immediately after 3.b?)
----------------------------------------
In 9.4.2.2 "ArrayCreate(length) Abstract Operation":
{27}
9.4.2.2 / step 7.a:
Set the [[ArrayInitialisationState]] internal slot of /A/ to *true*.
s|isation|ization|
{28}
9.4.2.2 / step 8.a:
Set the [[ArrayInitialisationState]] internal slot of /A/ to *false*.
s|isation|ization|
----------------------------------------
In 9.4.3.4 "StringCreate Abstract Operation":
{29}
9.4.3.4 / step 4:
Set the [[DefineOwnProperty]] internal method of /A/ as specified in 9.4.3.2.
9.4.3.2 is an algorithm for [[Enumerate]], not [[DefineOwnProperty]].
There isn't an algorithm for [[DefineOwnProperty]] in 9.4.3.*.
Delete this step?
----------------------------------------
In 9.4.4.1 "[[GetOwnProperty]] (P)":
{30}
9.4.4.1 / step 6:
If IsDATADescriptor(/desc/) is *true* and /P/ is "caller" and ...
s|DATA|Data|
----------------------------------------
In 9.4.4.3 "[[Get]] (P, Receiver)":
{31}
9.4.4.3 / para 1:
The [[Get]] internal method of an arguments exotic object
for a with formal parameters when called with a property name /P/ ...
s|for a with|for a function with|
{32}
9.4.4.3 / step 7:
ReturnIfAbrupt(/v/.
Insert right-paren.
----------------------------------------
In 9.4.4.4 "[[Set]] ( P, V, Receiver)":
{33,34,35}
9.4.4.4 / para 1:
The [[Get]] internal method of an arguments exotic object for a with formal
parameters when called with a property name /P/ performs the following steps:
s|Get|Set|
s|for a with|for a function with|
After /P/, insert "and a value /V/"
{36}
9.4.4.4 / step 5.a:
Return the result of calling the default ordinary object [[Set]] internal
method (9.1.8) on /args/ passing /P/, /V/ and /receiver/ as the arguments.
s|receiver|Receiver|
----------------------------------------
In 9.4.4.6 "CreateStrictArgumentsObject(formals, argumentsList) Abstract Op...":
{37}
9.4.4.6 / para 1:
The abstract operation CreateStrictArgumentsObject called with an arguments
/formals/ and /argumentsList/ performs the following steps:
Delete "an"
{38}
9.4.4.6 / step 6:
Perform DefinePropertyOrThrow(/F/, "caller",
PropertyDescriptor { [[Get]]: /thrower/, [[Set]]: /thrower/, ...}).
'F' is not defined.
'thrower' is not defined.
----------------------------------------
In 9.4.4.7 "CreateMappedArgumentsObject( ... ) Abstract Operation":
{39}
9.4.4.7 / para 1:
The abstract operation CreateMappedArgumentsObject is called with
object /func/, grammar production /formals/, List /argumentsList/,
and environment record /env/The following steps are performed:
s|envThe|env. The|
{40}
9.4.4.7 / step 7:
Set the [[Set]] internal method of /obj/ as specified in 8.
s|8|9.4.4.4|
{41}
9.4.4.7 / step 15.a:
Let /val/ be the element of /args/ at 0-origined list position /index/.
'args' is not defined.
{42}
9.4.4.7 / step 17:
Let /map/ be ObjectCreate(null).
Put 'null' in bold.
{43}
9.4.4.7 / step 22:
Perform DefinePropertyOrThrow(/F/, "callee",
PropertyDescriptor {[[Get]]: /thrower/, [[Set]]: /thrower/, ...}).
'F' is not defined.
'thrower' is not defined.
----------------------------------------
In 9.4.4.7.1 "nameMakeArgGetter ( name, env) Abstract Operation":
{44}
9.4.4.7.1 / header:
nameMakeArgGetter ( name, env) Abstract Operation
Delete initial 'name'
{45}
9.4.4.7.1 / para 2:
An ArgGetter function is an anonymous built-in function with
[[name]] and [[env]] internal slots. When an ArgGetter function /f/
is called with it performs the following steps:
Delete the "with" before "it performs".
----------------------------------------
In 9.4.4.7.2 "MakeArgSetter ( name, env) Abstract Operation":
{46}
9.4.4.7.2 / para 2:
An ArgSetter function is an anonymous built-in function with
[[name]] and [[env]] internal slots. When an ArgGetter function /f/
is called with argument /value/ with it performs the following steps:
s|ArgGetter|ArgSetter|
Delete the "with" before "it performs"
----------------------------------------
In 9.4.5.1 "[[GetOwnProperty]] ( P )":
{47}
9.4.5.1 / step 3.a:
Let /numericIndex/ be CannonicalNumericString(/P/).
s|Cannon|Canon|
----------------------------------------
In 9.4.6 "Module Exotic Objects":
{}
9.4.6 / para 1:
A /module object/ is an exotic object that exposes the bindings exported from
an ECMScript /Module/ (See 15.2).
s|ECM|ECMA|
{48}
9.4.6 / para 1:
There is a one-to-one correspondence between the own properties of
a module exoticobject ...
Insert space into "exoticobject"
{49}
9.4.6 / para 1:
These are the only properties of an module exotic object.
s|an module|a module|
{}
9.4.6 / para 1:
Each such property have the attributes {...}.
s|have|has|
{50}
9.4.6 / table / row 2:
[[ModuleEnviornment]]
s|Enviornment|Environment|
{51}
9.4.6 / table / row 4:
Table has a row of empty cells.
----------------------------------------
In 9.4.6.8 "[[Get]] (P, Receiver)":
{52,53}
9.4.6.8 / step 5:
Return the result of calling the GetBindngValue concrete method of /env/
with arguments (/P/, *true*).
s|Bindng|Binding|
The parenthesized args are odd without a prefix identifier.
Change (back) to "... with arguments /P/ and *true*"
----------------------------------------
In 9.4.6.11 "[[Enumerate]] ()":
{54}
9.4.6.11 / step 1:
Let /exports/ be the value of O's [[Exports]] internal slot.
Italicize 'O'
{55}
9.4.6.11 / step 2:
Return CreateListIternator(/exports/).
s|Iternator|Iterator|
----------------------------------------
In 9.4.6.12 "[[OwnPropertyKeys]] ( )":
{56}
9.4.6.12 / para 1:
When the [[OwnPropertyKeys]] internal method of an module exotic object /O/ ...
s|an module|a module|
{57}
9.4.6.12 / step 1:
Let /exports/ be the value of O's [[Exports]] internal slot.
Italicize 'O'
{58}
9.4.6.12 / step 2:
Return CreateListIternator(/exports/).
s|Iternator|Iterator|
----------------------------------------
In 9.4.6.13 "ModuleObjectCreate (environment, exports)":
{59}
9.4.6.13:
The operation defined by this section is never invoked.
{60}
9.4.6.13 / step 1:
Assert: /environment/ is Declarative Environment Record.
After "is", insert "a"
{61}
9.4.6.13 / step 5:
Set /M/'s [[ModuleEnviornment]] internal slot to /environment/.
s|Enviornment|Environment|
{62}
9.4.6.13 / step 6:
Set /M/'s [[Exports]] internal slot /exports/.
After "slot", insert "to"
----------------------------------------
In 9.5.15 "ProxyCreate(target, handler) Abstract Operation":
{63}
9.5.15 / step 4:
Set /P/'s essential internal methods to the definitions specified in 9.4.6.
The definitions in 9.4.6 are for modules. s|9.4.6|9.5| ?
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fixed in rev24 editor's draft
Not fixed in rev24:
{6}
9.2.4 / step 10.a:
If /thisMode/ is `strict`, then let /thisValue/ to /thisArgument/.
s|to|be|
{8}
9.2.4 / step 10.b.ii.1:
if Type(/thisArgument/) is not Object, then let /needsThisWrapper/ to *true*.
s|to|be|
{18}
9.2.14 / step 23:
If /needSpecialArgumentsBinding/ is *true*, then
s|need|needs|
{59}
Abstract operation ModuleObjectCreate() is never invoked.
fixed in rev24
Reopening due to the leftovers noted in comment 2.
fixed in rev25 editor's draft
confirmed fixed except for {59}, re-raised as Bug 2947.