Index: src/code-stub-assembler.h |
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h |
index 07823333993fc692be31beea803ae694a42eee2e..3c919409b1558af0098c2178035187a630800568 100644 |
--- a/src/code-stub-assembler.h |
+++ b/src/code-stub-assembler.h |
@@ -210,7 +210,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { |
Label* if_false); |
void BranchIfJSObject(compiler::Node* object, Label* if_true, |
Label* if_false); |
- |
void BranchIfFastJSArray(compiler::Node* object, compiler::Node* context, |
Label* if_true, Label* if_false); |
@@ -286,10 +285,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { |
compiler::Node* LoadMapConstructorFunctionIndex(compiler::Node* map); |
// Load the constructor of a Map (equivalent to Map::GetConstructor()). |
compiler::Node* LoadMapConstructor(compiler::Node* map); |
- // Check whether the map is for an object with special properties, such as a |
- // JSProxy or an object with interceptors. |
- compiler::Node* IsSpecialReceiverMap(compiler::Node* map); |
- compiler::Node* IsSpecialReceiverInstanceType(compiler::Node* instance_type); |
// Check if the map is set for slow properties. |
compiler::Node* IsDictionaryMap(compiler::Node* map); |
@@ -306,6 +301,7 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { |
// Load value field of a JSValue object. |
compiler::Node* LoadJSValueValue(compiler::Node* object); |
// Load value field of a WeakCell object. |
+ compiler::Node* LoadWeakCellValueUnchecked(compiler::Node* weak_cell); |
compiler::Node* LoadWeakCellValue(compiler::Node* weak_cell, |
Label* if_cleared = nullptr); |
@@ -609,10 +605,26 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { |
char const* method_name); |
// Type checks. |
+ // Check whether the map is for an object with special properties, such as a |
+ // JSProxy or an object with interceptors. |
+ compiler::Node* IsSpecialReceiverMap(compiler::Node* map); |
+ compiler::Node* IsSpecialReceiverInstanceType(compiler::Node* instance_type); |
compiler::Node* IsStringInstanceType(compiler::Node* instance_type); |
+ compiler::Node* IsString(compiler::Node* object); |
+ compiler::Node* IsJSObject(compiler::Node* object); |
compiler::Node* IsJSReceiverInstanceType(compiler::Node* instance_type); |
- |
+ compiler::Node* IsJSReceiver(compiler::Node* object); |
+ compiler::Node* IsMap(compiler::Node* object); |
compiler::Node* IsCallableMap(compiler::Node* map); |
+ compiler::Node* IsName(compiler::Node* object); |
+ compiler::Node* IsJSValue(compiler::Node* object); |
+ compiler::Node* IsJSArray(compiler::Node* object); |
+ compiler::Node* IsNativeContext(compiler::Node* object); |
+ compiler::Node* IsWeakCell(compiler::Node* object); |
+ compiler::Node* IsFixedDoubleArray(compiler::Node* object); |
+ compiler::Node* IsHashTable(compiler::Node* object); |
+ compiler::Node* IsDictionary(compiler::Node* object); |
+ compiler::Node* IsUnseededNumberDictionary(compiler::Node* object); |
// String helpers. |
// Load a character from a String (might flatten a ConsString). |
@@ -1169,10 +1181,26 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { |
compiler::Node* value, |
Label* bailout); |
+ compiler::Node* AllocateSlicedString(Heap::RootListIndex map_root_index, |
+ compiler::Node* length, |
+ compiler::Node* parent, |
+ compiler::Node* offset); |
+ |
+ compiler::Node* AllocateConsString(Heap::RootListIndex map_root_index, |
+ compiler::Node* length, |
+ compiler::Node* first, |
+ compiler::Node* second, |
+ AllocationFlags flags); |
+ |
static const int kElementLoopUnrollThreshold = 8; |
}; |
#define CSA_ASSERT(x) Assert((x), #x, __FILE__, __LINE__) |
+#ifdef ENABLE_SLOW_DCHECKS |
+#define CSA_SLOW_ASSERT(x) Assert((x), #x, __FILE__, __LINE__) |
+#else |
+#define CSA_SLOW_ASSERT(x) |
+#endif |
DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |