OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 1534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1545 ASSERT(args.length() == 2); | 1545 ASSERT(args.length() == 2); |
1546 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); | 1546 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); |
1547 Handle<Object> key(args[1], isolate); | 1547 Handle<Object> key(args[1], isolate); |
1548 Handle<OrderedHashSet> table(OrderedHashSet::cast(holder->table())); | 1548 Handle<OrderedHashSet> table(OrderedHashSet::cast(holder->table())); |
1549 table = OrderedHashSet::Remove(table, key); | 1549 table = OrderedHashSet::Remove(table, key); |
1550 holder->set_table(*table); | 1550 holder->set_table(*table); |
1551 return isolate->heap()->undefined_value(); | 1551 return isolate->heap()->undefined_value(); |
1552 } | 1552 } |
1553 | 1553 |
1554 | 1554 |
1555 RUNTIME_FUNCTION(MaybeObject*, Runtime_SetClear) { | |
1556 HandleScope scope(isolate); | |
1557 ASSERT(args.length() == 1); | |
1558 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); | |
1559 Handle<OrderedHashSet> table(OrderedHashSet::cast(holder->table())); | |
1560 table = OrderedHashSet::Clear(table); | |
1561 holder->set_table(*table); | |
1562 return isolate->heap()->undefined_value(); | |
1563 } | |
1564 | |
1565 | |
1566 RUNTIME_FUNCTION(MaybeObject*, Runtime_SetGetSize) { | 1555 RUNTIME_FUNCTION(MaybeObject*, Runtime_SetGetSize) { |
1567 HandleScope scope(isolate); | 1556 HandleScope scope(isolate); |
1568 ASSERT(args.length() == 1); | 1557 ASSERT(args.length() == 1); |
1569 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); | 1558 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); |
1570 Handle<OrderedHashSet> table(OrderedHashSet::cast(holder->table())); | 1559 Handle<OrderedHashSet> table(OrderedHashSet::cast(holder->table())); |
1571 return Smi::FromInt(table->NumberOfElements()); | 1560 return Smi::FromInt(table->NumberOfElements()); |
1572 } | 1561 } |
1573 | 1562 |
1574 | 1563 |
1575 RUNTIME_FUNCTION(MaybeObject*, Runtime_SetCreateIterator) { | |
1576 HandleScope scope(isolate); | |
1577 ASSERT(args.length() == 2); | |
1578 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); | |
1579 CONVERT_SMI_ARG_CHECKED(kind, 1) | |
1580 ASSERT(kind == JSSetIterator::kKindValues | |
1581 || kind == JSSetIterator::kKindEntries); | |
1582 Handle<OrderedHashSet> table(OrderedHashSet::cast(holder->table())); | |
1583 Handle<JSSetIterator> iterator = JSSetIterator::Create(table, kind); | |
1584 return *iterator; | |
1585 } | |
1586 | |
1587 | |
1588 RUNTIME_FUNCTION(MaybeObject*, Runtime_SetIteratorNext) { | |
1589 HandleScope scope(isolate); | |
1590 ASSERT(args.length() == 1); | |
1591 CONVERT_ARG_HANDLE_CHECKED(JSSetIterator, holder, 0); | |
1592 Handle<JSObject> result = JSSetIterator::Next(holder); | |
1593 return *result; | |
1594 } | |
1595 | |
1596 | |
1597 RUNTIME_FUNCTION(MaybeObject*, Runtime_SetIteratorClose) { | |
1598 HandleScope scope(isolate); | |
1599 ASSERT(args.length() == 1); | |
1600 CONVERT_ARG_HANDLE_CHECKED(JSSetIterator, holder, 0); | |
1601 holder->Close(); | |
1602 return isolate->heap()->undefined_value(); | |
1603 } | |
1604 | |
1605 | |
1606 RUNTIME_FUNCTION(MaybeObject*, Runtime_MapInitialize) { | 1564 RUNTIME_FUNCTION(MaybeObject*, Runtime_MapInitialize) { |
1607 HandleScope scope(isolate); | 1565 HandleScope scope(isolate); |
1608 ASSERT(args.length() == 1); | 1566 ASSERT(args.length() == 1); |
1609 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); | 1567 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); |
1610 Handle<OrderedHashMap> table = isolate->factory()->NewOrderedHashMap(); | 1568 Handle<OrderedHashMap> table = isolate->factory()->NewOrderedHashMap(); |
1611 holder->set_table(*table); | 1569 holder->set_table(*table); |
1612 return *holder; | 1570 return *holder; |
1613 } | 1571 } |
1614 | 1572 |
1615 | 1573 |
(...skipping 26 matching lines...) Expand all Loading... |
1642 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); | 1600 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); |
1643 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); | 1601 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); |
1644 Handle<Object> lookup(table->Lookup(*key), isolate); | 1602 Handle<Object> lookup(table->Lookup(*key), isolate); |
1645 Handle<OrderedHashMap> new_table = | 1603 Handle<OrderedHashMap> new_table = |
1646 OrderedHashMap::Put(table, key, isolate->factory()->the_hole_value()); | 1604 OrderedHashMap::Put(table, key, isolate->factory()->the_hole_value()); |
1647 holder->set_table(*new_table); | 1605 holder->set_table(*new_table); |
1648 return isolate->heap()->ToBoolean(!lookup->IsTheHole()); | 1606 return isolate->heap()->ToBoolean(!lookup->IsTheHole()); |
1649 } | 1607 } |
1650 | 1608 |
1651 | 1609 |
1652 RUNTIME_FUNCTION(MaybeObject*, Runtime_MapClear) { | |
1653 HandleScope scope(isolate); | |
1654 ASSERT(args.length() == 1); | |
1655 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); | |
1656 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); | |
1657 table = OrderedHashMap::Clear(table); | |
1658 holder->set_table(*table); | |
1659 return isolate->heap()->undefined_value(); | |
1660 } | |
1661 | |
1662 | |
1663 RUNTIME_FUNCTION(MaybeObject*, Runtime_MapSet) { | 1610 RUNTIME_FUNCTION(MaybeObject*, Runtime_MapSet) { |
1664 HandleScope scope(isolate); | 1611 HandleScope scope(isolate); |
1665 ASSERT(args.length() == 3); | 1612 ASSERT(args.length() == 3); |
1666 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); | 1613 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); |
1667 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); | 1614 CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); |
1668 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2); | 1615 CONVERT_ARG_HANDLE_CHECKED(Object, value, 2); |
1669 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); | 1616 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); |
1670 Handle<OrderedHashMap> new_table = OrderedHashMap::Put(table, key, value); | 1617 Handle<OrderedHashMap> new_table = OrderedHashMap::Put(table, key, value); |
1671 holder->set_table(*new_table); | 1618 holder->set_table(*new_table); |
1672 return isolate->heap()->undefined_value(); | 1619 return isolate->heap()->undefined_value(); |
1673 } | 1620 } |
1674 | 1621 |
1675 | 1622 |
1676 RUNTIME_FUNCTION(MaybeObject*, Runtime_MapGetSize) { | 1623 RUNTIME_FUNCTION(MaybeObject*, Runtime_MapGetSize) { |
1677 HandleScope scope(isolate); | 1624 HandleScope scope(isolate); |
1678 ASSERT(args.length() == 1); | 1625 ASSERT(args.length() == 1); |
1679 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); | 1626 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); |
1680 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); | 1627 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); |
1681 return Smi::FromInt(table->NumberOfElements()); | 1628 return Smi::FromInt(table->NumberOfElements()); |
1682 } | 1629 } |
1683 | 1630 |
1684 | 1631 |
1685 RUNTIME_FUNCTION(MaybeObject*, Runtime_MapCreateIterator) { | |
1686 HandleScope scope(isolate); | |
1687 ASSERT(args.length() == 2); | |
1688 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); | |
1689 CONVERT_SMI_ARG_CHECKED(kind, 1) | |
1690 ASSERT(kind == JSMapIterator::kKindKeys | |
1691 || kind == JSMapIterator::kKindValues | |
1692 || kind == JSMapIterator::kKindEntries); | |
1693 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); | |
1694 Handle<JSMapIterator> iterator = JSMapIterator::Create(table, kind); | |
1695 return *iterator; | |
1696 } | |
1697 | |
1698 | |
1699 RUNTIME_FUNCTION(MaybeObject*, Runtime_MapIteratorNext) { | |
1700 HandleScope scope(isolate); | |
1701 ASSERT(args.length() == 1); | |
1702 CONVERT_ARG_HANDLE_CHECKED(JSMapIterator, holder, 0); | |
1703 Handle<JSObject> result = JSMapIterator::Next(holder); | |
1704 return *result; | |
1705 } | |
1706 | |
1707 | |
1708 RUNTIME_FUNCTION(MaybeObject*, Runtime_MapIteratorClose) { | |
1709 HandleScope scope(isolate); | |
1710 ASSERT(args.length() == 1); | |
1711 CONVERT_ARG_HANDLE_CHECKED(JSMapIterator, holder, 0); | |
1712 holder->Close(); | |
1713 return isolate->heap()->undefined_value(); | |
1714 } | |
1715 | |
1716 | |
1717 static JSWeakCollection* WeakCollectionInitialize(Isolate* isolate, | 1632 static JSWeakCollection* WeakCollectionInitialize(Isolate* isolate, |
1718 Handle<JSWeakCollection> weak_collection) { | 1633 Handle<JSWeakCollection> weak_collection) { |
1719 ASSERT(weak_collection->map()->inobject_properties() == 0); | 1634 ASSERT(weak_collection->map()->inobject_properties() == 0); |
1720 Handle<ObjectHashTable> table = isolate->factory()->NewObjectHashTable(0); | 1635 Handle<ObjectHashTable> table = isolate->factory()->NewObjectHashTable(0); |
1721 weak_collection->set_table(*table); | 1636 weak_collection->set_table(*table); |
1722 weak_collection->set_next(Smi::FromInt(0)); | 1637 weak_collection->set_next(Smi::FromInt(0)); |
1723 return *weak_collection; | 1638 return *weak_collection; |
1724 } | 1639 } |
1725 | 1640 |
1726 | 1641 |
(...skipping 13450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15177 } | 15092 } |
15178 } | 15093 } |
15179 | 15094 |
15180 | 15095 |
15181 void Runtime::OutOfMemory() { | 15096 void Runtime::OutOfMemory() { |
15182 Heap::FatalProcessOutOfMemory("CALL_AND_RETRY_LAST", true); | 15097 Heap::FatalProcessOutOfMemory("CALL_AND_RETRY_LAST", true); |
15183 UNREACHABLE(); | 15098 UNREACHABLE(); |
15184 } | 15099 } |
15185 | 15100 |
15186 } } // namespace v8::internal | 15101 } } // namespace v8::internal |
OLD | NEW |