1// Copyright 2019 the V8 project authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5@abstract 6extern class JSCollection extends JSObject { 7 // The backing hash table. 8 table: Object; 9} 10extern class JSSet extends JSCollection {} 11extern class JSMap extends JSCollection {} 12 13@abstract 14extern class JSWeakCollection extends JSObject { 15 // The backing hash table mapping keys to values. 16 table: Object; 17} 18extern class JSWeakSet extends JSWeakCollection {} 19extern class JSWeakMap extends JSWeakCollection {} 20 21@abstract extern class JSMapIterator extends JSCollectionIterator; 22extern class JSMapKeyIterator extends JSMapIterator 23 generates 'TNode<JSMapIterator>'; 24extern class JSMapKeyValueIterator extends JSMapIterator 25 generates 'TNode<JSMapIterator>'; 26extern class JSMapValueIterator extends JSMapIterator 27 generates 'TNode<JSMapIterator>'; 28 29@abstract extern class JSSetIterator extends JSCollectionIterator; 30extern class JSSetKeyValueIterator extends JSSetIterator 31 generates 'TNode<JSSetIterator>'; 32extern class JSSetValueIterator extends JSSetIterator 33 generates 'TNode<JSSetIterator>'; 34