Index: src/code-stub-assembler.h |
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h |
index efb95546833ef39bd6dfee28b3bc7eaace094dc8..d81f8c20156d061b33997ac3c955ddedf11051e2 100644 |
--- a/src/code-stub-assembler.h |
+++ b/src/code-stub-assembler.h |
@@ -689,6 +689,8 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { |
Node* IsSpecialReceiverMap(Node* map); |
Node* IsSpecialReceiverInstanceType(Node* instance_type); |
Node* IsStringInstanceType(Node* instance_type); |
+ Node* IsOneByteStringInstanceType(Node* instance_type); |
+ Node* IsSequentialStringInstanceType(Node* instance_type); |
Node* IsString(Node* object); |
Node* IsJSObject(Node* object); |
Node* IsJSGlobalProxy(Node* object); |
@@ -733,6 +735,14 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { |
Node* StringAdd(Node* context, Node* first, Node* second, |
AllocationFlags flags = kNone); |
+ // Tries to unpack |string| into a pseudo-sequential string. For instance, |
+ // In addition to the work done by TryDerefExternalString and |
+ // MaybeDerefIndirectString, this method can also unpack sliced strings into |
+ // a (string, offset) pair. The same GC restrictions on the returned string |
+ // value apply as for TryDerefExternalString. |
+ void TryUnpackString(Variable* var_string, Variable* var_offset, |
+ Variable* var_instance_type, Label* if_bailout); |
+ |
// Unpack the external string, returning a pointer that (offset-wise) looks |
// like a sequential string. |
// Note that this pointer is not tagged and does not point to a real |