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 6@generateCppClass 7extern class JSCollection extends JSObject { 8 // The backing hash table. 9 table: Object; 10} 11@generateCppClass 12extern class JSSet extends JSCollection { 13} 14@generateCppClass 15extern class JSMap extends JSCollection { 16} 17 18@abstract 19@generateCppClass 20extern class JSWeakCollection extends JSObject { 21 // The backing hash table mapping keys to values. 22 table: Object; 23} 24@generateCppClass 25extern class JSWeakSet extends JSWeakCollection { 26} 27@generateCppClass 28extern class JSWeakMap extends JSWeakCollection { 29} 30 31@abstract extern class JSMapIterator extends JSCollectionIterator; 32extern class JSMapKeyIterator extends JSMapIterator 33 generates 'TNode<JSMapIterator>'; 34extern class JSMapKeyValueIterator extends JSMapIterator 35 generates 'TNode<JSMapIterator>'; 36extern class JSMapValueIterator extends JSMapIterator 37 generates 'TNode<JSMapIterator>'; 38 39@abstract extern class JSSetIterator extends JSCollectionIterator; 40extern class JSSetKeyValueIterator extends JSSetIterator 41 generates 'TNode<JSSetIterator>'; 42extern class JSSetValueIterator extends JSSetIterator 43 generates 'TNode<JSSetIterator>'; 44