Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: src/runtime.cc

Issue 238973011: Revert "ES6: Add support for Map/Set forEach" (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/runtime.h ('k') | src/x64/full-codegen-x64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 13441 matching lines...) Expand 10 before | Expand all | Expand 10 after
15168 } 15083 }
15169 } 15084 }
15170 15085
15171 15086
15172 void Runtime::OutOfMemory() { 15087 void Runtime::OutOfMemory() {
15173 Heap::FatalProcessOutOfMemory("CALL_AND_RETRY_LAST", true); 15088 Heap::FatalProcessOutOfMemory("CALL_AND_RETRY_LAST", true);
15174 UNREACHABLE(); 15089 UNREACHABLE();
15175 } 15090 }
15176 15091
15177 } } // namespace v8::internal 15092 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/runtime.h ('k') | src/x64/full-codegen-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698