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 #ifndef V8_RUNTIME_RUNTIME_H_ | 5 #ifndef V8_RUNTIME_RUNTIME_H_ |
6 #define V8_RUNTIME_RUNTIME_H_ | 6 #define V8_RUNTIME_RUNTIME_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/objects.h" | 9 #include "src/objects.h" |
10 #include "src/unicode.h" | 10 #include "src/unicode.h" |
(...skipping 1159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1170 Handle<Object> value, LanguageMode language_mode); | 1170 Handle<Object> value, LanguageMode language_mode); |
1171 | 1171 |
1172 MUST_USE_RESULT static MaybeHandle<Object> GetObjectProperty( | 1172 MUST_USE_RESULT static MaybeHandle<Object> GetObjectProperty( |
1173 Isolate* isolate, Handle<Object> object, Handle<Object> key, | 1173 Isolate* isolate, Handle<Object> object, Handle<Object> key, |
1174 LanguageMode language_mode = SLOPPY); | 1174 LanguageMode language_mode = SLOPPY); |
1175 | 1175 |
1176 MUST_USE_RESULT static MaybeHandle<Object> KeyedGetObjectProperty( | 1176 MUST_USE_RESULT static MaybeHandle<Object> KeyedGetObjectProperty( |
1177 Isolate* isolate, Handle<Object> receiver_obj, Handle<Object> key_obj, | 1177 Isolate* isolate, Handle<Object> receiver_obj, Handle<Object> key_obj, |
1178 LanguageMode language_mode); | 1178 LanguageMode language_mode); |
1179 | 1179 |
| 1180 // TODO(mstarzinger): Remove this once %DefaultConstructorCallSuper is gone. |
1180 MUST_USE_RESULT static MaybeHandle<Object> GetPrototype( | 1181 MUST_USE_RESULT static MaybeHandle<Object> GetPrototype( |
1181 Isolate* isolate, Handle<Object> object); | 1182 Isolate* isolate, Handle<Object> object); |
1182 | 1183 |
1183 enum TypedArrayId { | 1184 enum TypedArrayId { |
1184 // arrayIds below should be synchronized with typedarray.js natives. | 1185 // arrayIds below should be synchronized with typedarray.js natives. |
1185 ARRAY_ID_UINT8 = 1, | 1186 ARRAY_ID_UINT8 = 1, |
1186 ARRAY_ID_INT8 = 2, | 1187 ARRAY_ID_INT8 = 2, |
1187 ARRAY_ID_UINT16 = 3, | 1188 ARRAY_ID_UINT16 = 3, |
1188 ARRAY_ID_INT16 = 4, | 1189 ARRAY_ID_INT16 = 4, |
1189 ARRAY_ID_UINT32 = 5, | 1190 ARRAY_ID_UINT32 = 5, |
(...skipping 10 matching lines...) Expand all Loading... |
1200 size_t* element_size); | 1201 size_t* element_size); |
1201 | 1202 |
1202 // Used in runtime.cc and hydrogen's VisitArrayLiteral. | 1203 // Used in runtime.cc and hydrogen's VisitArrayLiteral. |
1203 MUST_USE_RESULT static MaybeHandle<Object> CreateArrayLiteralBoilerplate( | 1204 MUST_USE_RESULT static MaybeHandle<Object> CreateArrayLiteralBoilerplate( |
1204 Isolate* isolate, Handle<FixedArray> literals, | 1205 Isolate* isolate, Handle<FixedArray> literals, |
1205 Handle<FixedArray> elements, bool is_strong); | 1206 Handle<FixedArray> elements, bool is_strong); |
1206 | 1207 |
1207 static MaybeHandle<JSArray> GetInternalProperties(Isolate* isolate, | 1208 static MaybeHandle<JSArray> GetInternalProperties(Isolate* isolate, |
1208 Handle<Object>); | 1209 Handle<Object>); |
1209 | 1210 |
| 1211 // Find the arguments of the JavaScript function invocation that called |
| 1212 // into C++ code. Collect these in a newly allocated array of handles |
| 1213 // (possibly prefixed by a number of empty handles). |
| 1214 // TODO(mstarzinger): Temporary workaround until this is only used by the |
| 1215 // %_Arguments and %_ArgumentsLength intrinsics. Make this function local to |
| 1216 // runtime-scopes.cc then. |
| 1217 static base::SmartArrayPointer<Handle<Object>> GetCallerArguments( |
| 1218 Isolate* isolate, int prefix_argc, int* total_argc); |
| 1219 |
1210 static bool AtomicIsLockFree(uint32_t size); | 1220 static bool AtomicIsLockFree(uint32_t size); |
1211 }; | 1221 }; |
1212 | 1222 |
1213 | 1223 |
1214 std::ostream& operator<<(std::ostream&, Runtime::FunctionId); | 1224 std::ostream& operator<<(std::ostream&, Runtime::FunctionId); |
1215 | 1225 |
1216 //--------------------------------------------------------------------------- | 1226 //--------------------------------------------------------------------------- |
1217 // Constants used by interface to runtime functions. | 1227 // Constants used by interface to runtime functions. |
1218 | 1228 |
1219 class AllocateDoubleAlignFlag : public BitField<bool, 0, 1> {}; | 1229 class AllocateDoubleAlignFlag : public BitField<bool, 0, 1> {}; |
(...skipping 24 matching lines...) Expand all Loading... |
1244 inline bool Runtime::AtomicIsLockFree(uint32_t size) { | 1254 inline bool Runtime::AtomicIsLockFree(uint32_t size) { |
1245 return size == 1 || size == 2 || size == 4; | 1255 return size == 1 || size == 2 || size == 4; |
1246 } | 1256 } |
1247 | 1257 |
1248 #endif | 1258 #endif |
1249 | 1259 |
1250 } // namespace internal | 1260 } // namespace internal |
1251 } // namespace v8 | 1261 } // namespace v8 |
1252 | 1262 |
1253 #endif // V8_RUNTIME_RUNTIME_H_ | 1263 #endif // V8_RUNTIME_RUNTIME_H_ |
OLD | NEW |