?um/p1-90`Maps는 keys와 values 모두 arbitrary
Maps는 collection 안의 elements 수에 대해 average로 sublinear인 access times를 제공하는 hash tables 또는 other mechanisms를 사용하여 implemented되어야 합니다. 이 specification에서 사용되는 data structure는 Maps의 required observable semantics를 describe하기 위한 것일 뿐입니다. viable implementation model로 intended되지 않습니다.
Map
extends 절의 값으로 사용될 수 있다. 지정된 Map 동작을 상속하려는 서브클래스 생성자는 Map.prototype의 내장 메서드를 지원하는 데 필요한 내부 상태로 서브클래스 인스턴스를 생성하고 초기화하기 위해 Map 생성자에 대한 super 호출을 포함해야 한다.이 function은 called될 때 다음 steps를 수행합니다:
parameter iterable이 present하면, 이는 two element
The abstract operation AddEntriesFromIterable takes arguments target (an Object), iterable (an
parameter iterable은 two element
Map
callback은 two arguments를 accept하는 function이어야 합니다. groupBy는 items 안의 각 element에 대해 ascending order로 callback을 한 번씩 calls하고, new Map을 constructs합니다. callback에 의해 returned되는 each value는 Map 안의 key로 사용됩니다. such key마다, result Map은 key가 that key이고 value가 callback이 that key를 returned한 all elements를 containing하는 array인 entry를 가집니다.
callback은 two arguments, 즉 element의 value와 element의 index로 called됩니다.
groupBy의 return value는 Map입니다.
이 function은 called될 때 다음 steps를 수행합니다:
Map.prototype의 initial value는
이 property는 attributes { [[Writable]]:
Map[%Symbol.species%]는 set accessor function이
이 function의
derived collection objects를 create하는 methods는 derived objects를 create하는 데 사용할
Map prototype object는:
이 method는 called될 때 다음 steps를 수행합니다:
that
Map.prototype.constructor의 initial value는
이 method는 called될 때 다음 steps를 수행합니다:
value
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
callback은 three arguments를 accept하는 function이어야 합니다. forEach는 Map 안에 present한 each key/value pair에 대해 key insertion order로 callback을 한 번씩 calls합니다. callback은 actually exist하는 Map의 keys에 대해서만 called되며, Map에서 deleted된 keys에 대해서는 called되지 않습니다.
thisArg parameter가 provided되면, callback의 each invocation에서
callback은 three arguments, 즉 item의 value, item의 key, 그리고 traversed되는 Map으로 called됩니다.
forEach는 called된 object를 directly mutate하지 않지만, object는 callback calls에 의해 mutated될 수 있습니다. map의 [[MapData]]의 each entry는 한 번만 visited됩니다. forEach call이 begins된 후 added된 new keys는 visited됩니다. key가 visited된 후 deleted되고 forEach call이 completes되기 전에 re-added되면 key는 revisited됩니다. forEach call이 begins된 후 visited되기 전에 deleted된 keys는, forEach call이 completes되기 전에 key가 again added되지 않는 한 visited되지 않습니다.
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
Map.prototype.size는 set accessor function이
이 method는 called될 때 다음 steps를 수행합니다:
이 property는 attributes { [[Writable]]:
Map instances는
Map Iterator는 some specific Map instance object에 대한 specific iteration을 represents하는 object입니다. Map Iterator objects에 대한 named
The abstract operation CreateMapIterator takes arguments map (an
%MapIteratorPrototype% object는:
이 property는 attributes { [[Writable]]:
Set objects는
Set objects는 collection 안의 elements 수에 대해 average로 sublinear인 access times를 제공하는 hash tables 또는 other mechanisms를 사용하여 implemented되어야 합니다. 이 specification에서 사용되는 data structure는 Set objects의 required observable semantics를 describe하기 위한 것일 뿐입니다. viable implementation model로 intended되지 않습니다.
Set Record는 Set 또는 similar object의 interface를 encapsulate하는 데 사용되는
Set Records는
| Field Name | Value | Meaning |
|---|---|---|
| [[SetObject]] | an Object | Set 또는 similar object입니다. |
| [[Size]] |
a non-negative |
object의 reported size입니다. |
| [[Has]] |
a |
object의 has method입니다.
|
| [[Keys]] |
a |
object의 keys method입니다.
|
The abstract operation GetSetRecord takes argument obj (an
The abstract operation SetDataHas takes arguments setData (a
The abstract operation SetDataIndex takes arguments setData (a
The abstract operation SetDataSize takes argument setData (a
Set
extends 절의 값으로 사용될 수 있다. 지정된 Set 동작을 상속하려는 서브클래스 생성자는 Set.prototype의 내장 메서드를 지원하는 데 필요한 내부 상태로 서브클래스 인스턴스를 생성하고 초기화하기 위해 Set 생성자에 대한 super 호출을 포함해야 한다.이 function은 called될 때 다음 steps를 수행합니다:
Set
Set.prototype의 initial value는
이 property는 attributes { [[Writable]]:
Set[%Symbol.species%]는 set accessor function이
이 function의
derived collection objects를 create하는 methods는 derived objects를 create하는 데 사용할
Set prototype object는:
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
that
Set.prototype.constructor의 initial value는
이 method는 called될 때 다음 steps를 수행합니다:
value
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
iteration purposes에서는, Set은 each entry가 its key와 value에 대해 same value를 가지는 Map과 similar하게 appears합니다.
이 method는 called될 때 다음 steps를 수행합니다:
callback은 three arguments를 accept하는 function이어야 합니다. forEach는
thisArg parameter가 provided되면, callback의 each invocation에서
callback은 three arguments로 called됩니다: first two arguments는 Set 안에 contained된 value입니다. same value가 both arguments로 passed됩니다. traversed되는
callback은 Map 및 Array용 forEach methods가 사용하는 call back functions와 consistent하기 위해 three arguments로 called됩니다. Sets에서는 each item value가 key이자 value인 것으로 considered됩니다.
forEach는 called된 object를 directly mutate하지 않지만, object는 callback calls에 의해 mutated될 수 있습니다.
Each value는 normally 한 번만 visited됩니다. However, value가 visited된 후 deleted되고 forEach call이 completes되기 전에 re-added되면 value는 revisited됩니다. forEach call이 begins된 후 visited되기 전에 deleted된 values는, forEach call이 completes되기 전에 value가 again added되지 않는 한 visited되지 않습니다. forEach call이 begins된 후 added된 new values는 visited됩니다.
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
iteration purposes에서는, Set은 each entry가 its key와 value에 대해 same value를 가지는 Map과 similar하게 appears합니다.
Set.prototype.size는 set accessor function이
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 property는 attributes { [[Writable]]:
Set instances는
Set Iterator는 below에 defined된 structure를 가진
The abstract operation CreateSetIterator takes arguments set (an
%SetIteratorPrototype% object는:
이 property는 attributes { [[Writable]]:
WeakMaps는 keys가 objects 및/또는 symbols이고 values는 arbitrary
implementation은 WeakMap의 key/value pair가 inaccessible하게 되는 time과 key/value pair가 WeakMap에서 removed되는 time 사이에 arbitrarily determined latency를 impose할 수 있습니다. 이 latency가 ECMAScript program에 observable하다면, program execution에 impact할 수 있는 indeterminacy의 source가 될 것입니다. 그 reason으로, ECMAScript implementation은 observer가 observed key를 present하도록 require하지 않는 WeakMap의 key를 observe하는 any means를 provide해서는 안 됩니다.
WeakMaps는 collection 안의 key/value pairs 수에 대해 average로 sublinear인 access times를 제공하는 hash tables 또는 other mechanisms를 사용하여 implemented되어야 합니다. 이 specification에서 사용되는 data structure는 WeakMaps의 required observable semantics를 describe하기 위한 것일 뿐입니다. viable implementation model로 intended되지 않습니다.
WeakMap 및 WeakSet은 WeakMap 또는 WeakSet instance가 없었다면 object 또는 symbol이 otherwise inaccessible해지고 implementation의 garbage collection mechanisms에 의한 resource reclamation의 대상이 되었을 경우 memory resources를 “leak”하지 않는 manner로 object 또는 symbol과 state를 dynamically associating하기 위한 mechanisms를 provide하도록 intended됩니다. 이 characteristic은 WeakMap 또는 WeakSet instances에서 keys로의 inverted per-object/symbol mapping을 사용하여 achieved될 수 있습니다. Alternatively, each WeakMap 또는 WeakSet instance는 internally its key 및 value data를 store할 수 있지만, 이 approach는 WeakMap 또는 WeakSet implementation과 garbage collector 사이의 coordination을 requires합니다. following references는 WeakMap 및 WeakSet의 implementations에 useful할 수 있는 mechanism을 describe합니다:
Barry Hayes. 1997. Ephemerons: a new finalization mechanism. In Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA '97), A. Michael Berman (Ed.). ACM, New York, NY, USA, 176-183, http://doi.acm.org/10.1145/263698.263733.
Alexandra Barros, Roberto Ierusalimschy, Eliminating Cycles in Weak Tables. Journal of Universal Computer Science - J.UCS, vol. 14, no. 21, pp. 3481-3497, 2008, http://www.jucs.org/jucs_14_21/eliminating_cycles_in_weak
WeakMap
extends 절의 값으로 사용될 수 있다. 지정된 WeakMap 동작을 상속하려는 서브클래스 생성자는 WeakMap.prototype의 내장 메서드를 지원하는 데 필요한 내부 상태로 서브클래스 인스턴스를 생성하고 초기화하기 위해 WeakMap 생성자에 대한 super 호출을 포함해야 한다.이 function은 called될 때 다음 steps를 수행합니다:
parameter iterable이 present하면, 이는 two element
WeakMap
WeakMap.prototype의 initial value는
이 property는 attributes { [[Writable]]:
WeakMap prototype object는:
WeakMap.prototype.constructor의 initial value는
이 method는 called될 때 다음 steps를 수행합니다:
value
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 method는 called될 때 다음 steps를 수행합니다:
이 property는 attributes { [[Writable]]:
WeakMap instances는
WeakSets는 objects 및/또는 symbols의 collections입니다. distinct object 또는 symbol은 WeakSet의 collection의 element로서 한 번만 occur할 수 있습니다. WeakSet은 specific value를 contain하는지 보기 위해 queried될 수 있지만, holding하는 values를 enumerating하기 위한 mechanism은 provided되지 않습니다. Certain conditions에서,
implementation은 WeakSet 안에 contained된 value가 inaccessible하게 되는 time과 value가 WeakSet에서 removed되는 time 사이에 arbitrarily determined latency를 impose할 수 있습니다. 이 latency가 ECMAScript program에 observable하다면, program execution에 impact할 수 있는 indeterminacy의 source가 될 것입니다. 그 reason으로, ECMAScript implementation은 observer가 observed value를 present하도록 require하지 않는 particular value를 WeakSet이 contains하는지 determine하는 any means를 provide해서는 안 됩니다.
WeakSets는 collection 안의 elements 수에 대해 average로 sublinear인 access times를 제공하는 hash tables 또는 other mechanisms를 사용하여 implemented되어야 합니다. 이 specification에서 사용되는 data structure는 WeakSets의 required observable semantics를 describe하기 위한 것일 뿐입니다. viable implementation model로 intended되지 않습니다.
WeakSet
extends 절의 값으로 사용될 수 있다. 지정된 WeakSet 동작을 상속하려는 서브클래스 생성자는 WeakSet.prototype의 내장 메서드를 지원하는 데 필요한 내부 상태로 서브클래스 인스턴스를 생성하고 초기화하기 위해 WeakSet 생성자에 대한 super 호출을 포함해야 한다.이 function은 called될 때 다음 steps를 수행합니다:
WeakSet
WeakSet.prototype의 initial value는
이 property는 attributes { [[Writable]]:
WeakSet prototype object는:
이 method는 called될 때 다음 steps를 수행합니다:
WeakSet.prototype.constructor의 initial value는
이 method는 called될 때 다음 steps를 수행합니다:
value
이 method는 called될 때 다음 steps를 수행합니다:
이 property는 attributes { [[Writable]]:
WeakSet instances는
The abstract operation CanonicalizeKeyedCollectionKey takes argument key (an