OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "platform/assert.h" | 5 #include "platform/assert.h" |
6 | 6 |
7 #include "vm/assembler.h" | 7 #include "vm/assembler.h" |
8 #include "vm/bootstrap_natives.h" | 8 #include "vm/bootstrap_natives.h" |
9 #include "vm/exceptions.h" | 9 #include "vm/exceptions.h" |
10 #include "vm/flags.h" | 10 #include "vm/flags.h" |
11 #include "vm/native_entry.h" | 11 #include "vm/native_entry.h" |
12 #include "vm/object.h" | 12 #include "vm/object.h" |
13 | 13 |
14 namespace dart { | 14 namespace dart { |
15 | 15 |
16 DEFINE_NATIVE_ENTRY(LinkedHashMap_getIndex, 1) { | 16 DEFINE_NATIVE_ENTRY(LinkedHashMap_getIndex, 1) { |
17 const LinkedHashMap& map = | 17 const LinkedHashMap& map = |
18 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); | 18 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); |
19 return map.index(); | 19 return map.index(); |
20 } | 20 } |
21 | 21 |
22 | |
23 DEFINE_NATIVE_ENTRY(LinkedHashMap_setIndex, 2) { | 22 DEFINE_NATIVE_ENTRY(LinkedHashMap_setIndex, 2) { |
24 const LinkedHashMap& map = | 23 const LinkedHashMap& map = |
25 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); | 24 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); |
26 const TypedData& index = TypedData::CheckedHandle(arguments->NativeArgAt(1)); | 25 const TypedData& index = TypedData::CheckedHandle(arguments->NativeArgAt(1)); |
27 map.SetIndex(index); | 26 map.SetIndex(index); |
28 return Object::null(); | 27 return Object::null(); |
29 } | 28 } |
30 | 29 |
31 | |
32 DEFINE_NATIVE_ENTRY(LinkedHashMap_getData, 1) { | 30 DEFINE_NATIVE_ENTRY(LinkedHashMap_getData, 1) { |
33 const LinkedHashMap& map = | 31 const LinkedHashMap& map = |
34 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); | 32 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); |
35 return map.data(); | 33 return map.data(); |
36 } | 34 } |
37 | 35 |
38 | |
39 DEFINE_NATIVE_ENTRY(LinkedHashMap_setData, 2) { | 36 DEFINE_NATIVE_ENTRY(LinkedHashMap_setData, 2) { |
40 const LinkedHashMap& map = | 37 const LinkedHashMap& map = |
41 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); | 38 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); |
42 const Array& data = Array::CheckedHandle(arguments->NativeArgAt(1)); | 39 const Array& data = Array::CheckedHandle(arguments->NativeArgAt(1)); |
43 map.SetData(data); | 40 map.SetData(data); |
44 return Object::null(); | 41 return Object::null(); |
45 } | 42 } |
46 | 43 |
47 | |
48 DEFINE_NATIVE_ENTRY(LinkedHashMap_getHashMask, 1) { | 44 DEFINE_NATIVE_ENTRY(LinkedHashMap_getHashMask, 1) { |
49 const LinkedHashMap& map = | 45 const LinkedHashMap& map = |
50 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); | 46 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); |
51 return map.hash_mask(); | 47 return map.hash_mask(); |
52 } | 48 } |
53 | 49 |
54 | |
55 DEFINE_NATIVE_ENTRY(LinkedHashMap_setHashMask, 2) { | 50 DEFINE_NATIVE_ENTRY(LinkedHashMap_setHashMask, 2) { |
56 const LinkedHashMap& map = | 51 const LinkedHashMap& map = |
57 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); | 52 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); |
58 const Smi& hashMask = Smi::CheckedHandle(arguments->NativeArgAt(1)); | 53 const Smi& hashMask = Smi::CheckedHandle(arguments->NativeArgAt(1)); |
59 map.SetHashMask(hashMask.Value()); | 54 map.SetHashMask(hashMask.Value()); |
60 return Object::null(); | 55 return Object::null(); |
61 } | 56 } |
62 | 57 |
63 | |
64 DEFINE_NATIVE_ENTRY(LinkedHashMap_getDeletedKeys, 1) { | 58 DEFINE_NATIVE_ENTRY(LinkedHashMap_getDeletedKeys, 1) { |
65 const LinkedHashMap& map = | 59 const LinkedHashMap& map = |
66 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); | 60 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); |
67 return map.deleted_keys(); | 61 return map.deleted_keys(); |
68 } | 62 } |
69 | 63 |
70 | |
71 DEFINE_NATIVE_ENTRY(LinkedHashMap_setDeletedKeys, 2) { | 64 DEFINE_NATIVE_ENTRY(LinkedHashMap_setDeletedKeys, 2) { |
72 const LinkedHashMap& map = | 65 const LinkedHashMap& map = |
73 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); | 66 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); |
74 const Smi& deletedKeys = Smi::CheckedHandle(arguments->NativeArgAt(1)); | 67 const Smi& deletedKeys = Smi::CheckedHandle(arguments->NativeArgAt(1)); |
75 map.SetDeletedKeys(deletedKeys.Value()); | 68 map.SetDeletedKeys(deletedKeys.Value()); |
76 return Object::null(); | 69 return Object::null(); |
77 } | 70 } |
78 | 71 |
79 | |
80 DEFINE_NATIVE_ENTRY(LinkedHashMap_getUsedData, 1) { | 72 DEFINE_NATIVE_ENTRY(LinkedHashMap_getUsedData, 1) { |
81 const LinkedHashMap& map = | 73 const LinkedHashMap& map = |
82 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); | 74 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); |
83 return map.used_data(); | 75 return map.used_data(); |
84 } | 76 } |
85 | 77 |
86 | |
87 DEFINE_NATIVE_ENTRY(LinkedHashMap_setUsedData, 2) { | 78 DEFINE_NATIVE_ENTRY(LinkedHashMap_setUsedData, 2) { |
88 const LinkedHashMap& map = | 79 const LinkedHashMap& map = |
89 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); | 80 LinkedHashMap::CheckedHandle(arguments->NativeArgAt(0)); |
90 const Smi& usedData = Smi::CheckedHandle(arguments->NativeArgAt(1)); | 81 const Smi& usedData = Smi::CheckedHandle(arguments->NativeArgAt(1)); |
91 map.SetUsedData(usedData.Value()); | 82 map.SetUsedData(usedData.Value()); |
92 return Object::null(); | 83 return Object::null(); |
93 } | 84 } |
94 | 85 |
95 } // namespace dart | 86 } // namespace dart |
OLD | NEW |