OLD | NEW |
---|---|
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stdlib.h> | 5 #include <stdlib.h> |
6 #include <limits> | 6 #include <limits> |
7 | 7 |
8 #include "v8.h" | 8 #include "v8.h" |
9 | 9 |
10 #include "accessors.h" | 10 #include "accessors.h" |
(...skipping 1566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1577 | 1577 |
1578 RUNTIME_FUNCTION(Runtime_SetGetSize) { | 1578 RUNTIME_FUNCTION(Runtime_SetGetSize) { |
1579 HandleScope scope(isolate); | 1579 HandleScope scope(isolate); |
1580 ASSERT(args.length() == 1); | 1580 ASSERT(args.length() == 1); |
1581 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); | 1581 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); |
1582 Handle<OrderedHashSet> table(OrderedHashSet::cast(holder->table())); | 1582 Handle<OrderedHashSet> table(OrderedHashSet::cast(holder->table())); |
1583 return Smi::FromInt(table->NumberOfElements()); | 1583 return Smi::FromInt(table->NumberOfElements()); |
1584 } | 1584 } |
1585 | 1585 |
1586 | 1586 |
1587 RUNTIME_FUNCTION(Runtime_SetCreateIterator) { | 1587 RUNTIME_FUNCTION(Runtime_SetIteratorInitialize) { |
1588 HandleScope scope(isolate); | 1588 HandleScope scope(isolate); |
1589 ASSERT(args.length() == 2); | 1589 ASSERT(args.length() == 3); |
1590 CONVERT_ARG_HANDLE_CHECKED(JSSet, holder, 0); | 1590 CONVERT_ARG_HANDLE_CHECKED(JSSetIterator, holder, 0); |
1591 CONVERT_SMI_ARG_CHECKED(kind, 1) | 1591 CONVERT_ARG_HANDLE_CHECKED(JSSet, set, 1); |
1592 CONVERT_SMI_ARG_CHECKED(kind, 2) | |
1592 RUNTIME_ASSERT(kind == JSSetIterator::kKindValues || | 1593 RUNTIME_ASSERT(kind == JSSetIterator::kKindValues || |
1593 kind == JSSetIterator::kKindEntries); | 1594 kind == JSSetIterator::kKindEntries); |
1594 Handle<OrderedHashSet> table(OrderedHashSet::cast(holder->table())); | 1595 Handle<OrderedHashSet> table(OrderedHashSet::cast(set->table())); |
1595 return *JSSetIterator::Create(table, kind); | 1596 holder->set_table(*table); |
1597 holder->set_index(Smi::FromInt(0)); | |
Michael Starzinger
2014/06/02 11:53:36
Remark: This gives a short window of time during w
arv (Not doing code reviews)
2014/06/02 23:40:52
I added IsUndefined checks to the verifier.
| |
1598 holder->set_kind(Smi::FromInt(kind)); | |
1599 return isolate->heap()->undefined_value(); | |
1596 } | 1600 } |
1597 | 1601 |
1598 | 1602 |
1599 RUNTIME_FUNCTION(Runtime_SetIteratorNext) { | 1603 RUNTIME_FUNCTION(Runtime_SetIteratorNext) { |
1600 HandleScope scope(isolate); | 1604 HandleScope scope(isolate); |
1601 ASSERT(args.length() == 1); | 1605 ASSERT(args.length() == 1); |
1602 CONVERT_ARG_HANDLE_CHECKED(JSSetIterator, holder, 0); | 1606 CONVERT_ARG_HANDLE_CHECKED(JSSetIterator, holder, 0); |
1603 return *JSSetIterator::Next(holder); | 1607 return *JSSetIterator::Next(holder); |
1604 } | 1608 } |
1605 | 1609 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1676 | 1680 |
1677 RUNTIME_FUNCTION(Runtime_MapGetSize) { | 1681 RUNTIME_FUNCTION(Runtime_MapGetSize) { |
1678 HandleScope scope(isolate); | 1682 HandleScope scope(isolate); |
1679 ASSERT(args.length() == 1); | 1683 ASSERT(args.length() == 1); |
1680 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); | 1684 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); |
1681 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); | 1685 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); |
1682 return Smi::FromInt(table->NumberOfElements()); | 1686 return Smi::FromInt(table->NumberOfElements()); |
1683 } | 1687 } |
1684 | 1688 |
1685 | 1689 |
1686 RUNTIME_FUNCTION(Runtime_MapCreateIterator) { | 1690 RUNTIME_FUNCTION(Runtime_MapIteratorInitialize) { |
1687 HandleScope scope(isolate); | 1691 HandleScope scope(isolate); |
1688 ASSERT(args.length() == 2); | 1692 ASSERT(args.length() == 3); |
1689 CONVERT_ARG_HANDLE_CHECKED(JSMap, holder, 0); | 1693 CONVERT_ARG_HANDLE_CHECKED(JSMapIterator, holder, 0); |
1690 CONVERT_SMI_ARG_CHECKED(kind, 1) | 1694 CONVERT_ARG_HANDLE_CHECKED(JSMap, map, 1); |
1695 CONVERT_SMI_ARG_CHECKED(kind, 2) | |
1691 RUNTIME_ASSERT(kind == JSMapIterator::kKindKeys | 1696 RUNTIME_ASSERT(kind == JSMapIterator::kKindKeys |
1692 || kind == JSMapIterator::kKindValues | 1697 || kind == JSMapIterator::kKindValues |
1693 || kind == JSMapIterator::kKindEntries); | 1698 || kind == JSMapIterator::kKindEntries); |
1694 Handle<OrderedHashMap> table(OrderedHashMap::cast(holder->table())); | 1699 Handle<OrderedHashMap> table(OrderedHashMap::cast(map->table())); |
1695 return *JSMapIterator::Create(table, kind); | 1700 holder->set_table(*table); |
1701 holder->set_index(Smi::FromInt(0)); | |
Michael Starzinger
2014/06/02 11:53:36
Likewise.
arv (Not doing code reviews)
2014/06/02 23:40:52
Done.
| |
1702 holder->set_kind(Smi::FromInt(kind)); | |
1703 return isolate->heap()->undefined_value(); | |
1696 } | 1704 } |
1697 | 1705 |
1698 | 1706 |
1699 RUNTIME_FUNCTION(Runtime_MapIteratorNext) { | 1707 RUNTIME_FUNCTION(Runtime_MapIteratorNext) { |
1700 HandleScope scope(isolate); | 1708 HandleScope scope(isolate); |
1701 ASSERT(args.length() == 1); | 1709 ASSERT(args.length() == 1); |
1702 CONVERT_ARG_HANDLE_CHECKED(JSMapIterator, holder, 0); | 1710 CONVERT_ARG_HANDLE_CHECKED(JSMapIterator, holder, 0); |
1703 return *JSMapIterator::Next(holder); | 1711 return *JSMapIterator::Next(holder); |
1704 } | 1712 } |
1705 | 1713 |
(...skipping 13452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
15158 } | 15166 } |
15159 return NULL; | 15167 return NULL; |
15160 } | 15168 } |
15161 | 15169 |
15162 | 15170 |
15163 const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) { | 15171 const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) { |
15164 return &(kIntrinsicFunctions[static_cast<int>(id)]); | 15172 return &(kIntrinsicFunctions[static_cast<int>(id)]); |
15165 } | 15173 } |
15166 | 15174 |
15167 } } // namespace v8::internal | 15175 } } // namespace v8::internal |
OLD | NEW |