Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Unified Diff: src/code-stub-assembler.h

Issue 2549773002: Internalize strings in-place (Closed)
Patch Set: rebased Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/builtins/builtins-string.cc ('k') | src/code-stub-assembler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/code-stub-assembler.h
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h
index e82a494926d6018ab3159ca4cc10de8b8f32ac6b..5d1a5378563214c64ad5847c3964c4255a915913 100644
--- a/src/code-stub-assembler.h
+++ b/src/code-stub-assembler.h
@@ -710,6 +710,16 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
Node* StringAdd(Node* context, Node* first, Node* second,
AllocationFlags flags = kNone);
+ // Check if |var_string| has an indirect (thin or flat cons) string type,
+ // and unpack it if so.
+ void MaybeDerefIndirectString(Variable* var_string, Node* instance_type,
+ Variable* var_did_something);
+ // Check if |var_left| or |var_right| has an indirect (thin or flat cons)
+ // string type, and unpack it/them if so. Fall through if nothing was done.
+ void MaybeDerefIndirectStrings(Variable* var_left, Node* left_instance_type,
+ Variable* var_right, Node* right_instance_type,
+ Label* did_something);
+
// Return the first index >= {from} at which {needle_char} was found in
// {string}, or -1 if such an index does not exist. The returned value is
// a Smi, {string} is expected to be a String, {needle_char} is an intptr,
@@ -741,9 +751,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
// Convert any object to a Primitive.
Node* JSReceiverToPrimitive(Node* context, Node* input);
- // Convert a String to a flat String.
- Node* FlattenString(Node* string);
-
enum ToIntegerTruncationMode {
kNoTruncation,
kTruncateMinusZero,
@@ -856,7 +863,8 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
// Various building blocks for stubs doing property lookups.
void TryToName(Node* key, Label* if_keyisindex, Variable* var_index,
- Label* if_keyisunique, Label* if_bailout);
+ Label* if_keyisunique, Variable* var_unique,
+ Label* if_bailout);
// Calculates array index for given dictionary entry and entry field.
// See Dictionary::EntryToIndex().
« no previous file with comments | « src/builtins/builtins-string.cc ('k') | src/code-stub-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698