| Index: src/code-stub-assembler.h
|
| diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h
|
| index 76d4cece1bea1ba2f589a30c396d6b1626b707ee..936c5d267799b52aee590fc4cbe85ae5e9143a57 100644
|
| --- a/src/code-stub-assembler.h
|
| +++ b/src/code-stub-assembler.h
|
| @@ -117,7 +117,9 @@ class CodeStubAssembler : public compiler::CodeAssembler {
|
| compiler::Node* SmiSub(compiler::Node* a, compiler::Node* b);
|
| compiler::Node* SmiSubWithOverflow(compiler::Node* a, compiler::Node* b);
|
| compiler::Node* SmiEqual(compiler::Node* a, compiler::Node* b);
|
| + compiler::Node* SmiAbove(compiler::Node* a, compiler::Node* b);
|
| compiler::Node* SmiAboveOrEqual(compiler::Node* a, compiler::Node* b);
|
| + compiler::Node* SmiBelow(compiler::Node* a, compiler::Node* b);
|
| compiler::Node* SmiLessThan(compiler::Node* a, compiler::Node* b);
|
| compiler::Node* SmiLessThanOrEqual(compiler::Node* a, compiler::Node* b);
|
| compiler::Node* SmiMax(compiler::Node* a, compiler::Node* b);
|
| @@ -141,7 +143,7 @@ class CodeStubAssembler : public compiler::CodeAssembler {
|
|
|
| // Check a value for smi-ness
|
| compiler::Node* WordIsSmi(compiler::Node* a);
|
| - // Check that the value is a positive smi.
|
| + // Check that the value is a non-negative smi.
|
| compiler::Node* WordIsPositiveSmi(compiler::Node* a);
|
|
|
| void BranchIfSmiEqual(compiler::Node* a, compiler::Node* b, Label* if_true,
|
| @@ -328,6 +330,18 @@ class CodeStubAssembler : public compiler::CodeAssembler {
|
| compiler::Node* AllocateSeqTwoByteString(int length);
|
| compiler::Node* AllocateSeqTwoByteString(compiler::Node* context,
|
| compiler::Node* length);
|
| +
|
| + // Allocate a SlicedOneByteString with the given length, parent and offset.
|
| + // |length| and |offset| are expected to be tagged.
|
| + compiler::Node* AllocateSlicedOneByteString(compiler::Node* length,
|
| + compiler::Node* parent,
|
| + compiler::Node* offset);
|
| + // Allocate a SlicedTwoByteString with the given length, parent and offset.
|
| + // |length| and |offset| are expected to be tagged.
|
| + compiler::Node* AllocateSlicedTwoByteString(compiler::Node* length,
|
| + compiler::Node* parent,
|
| + compiler::Node* offset);
|
| +
|
| // Allocate a JSArray without elements and initialize the header fields.
|
| compiler::Node* AllocateUninitializedJSArrayWithoutElements(
|
| ElementsKind kind, compiler::Node* array_map, compiler::Node* length,
|
| @@ -378,6 +392,16 @@ class CodeStubAssembler : public compiler::CodeAssembler {
|
| WriteBarrierMode barrier_mode = UPDATE_WRITE_BARRIER,
|
| ParameterMode mode = INTEGER_PARAMETERS);
|
|
|
| + // Copies |character_count| elements from |from_string| to |to_string|
|
| + // starting at the |from_index|'th character. |from_index| and
|
| + // |character_count| must be Smis s.t.
|
| + // 0 <= |from_index| <= |from_index| + |character_count| < from_string.length.
|
| + void CopyStringCharacters(compiler::Node* from_string,
|
| + compiler::Node* to_string,
|
| + compiler::Node* from_index,
|
| + compiler::Node* character_count,
|
| + String::Encoding encoding);
|
| +
|
| // Loads an element from |array| of |from_kind| elements by given |offset|
|
| // (NOTE: not index!), does a hole check if |if_hole| is provided and
|
| // converts the value so that it becomes ready for storing to array of
|
| @@ -449,6 +473,10 @@ class CodeStubAssembler : public compiler::CodeAssembler {
|
| compiler::Node* smi_index);
|
| // Return the single character string with only {code}.
|
| compiler::Node* StringFromCharCode(compiler::Node* code);
|
| + // Return a new string object which holds a substring containing the range
|
| + // [from,to[ of string. |from| and |to| are expected to be tagged.
|
| + compiler::Node* SubString(compiler::Node* context, compiler::Node* string,
|
| + compiler::Node* from, compiler::Node* to);
|
|
|
| compiler::Node* StringFromCodePoint(compiler::Node* codepoint,
|
| UnicodeEncoding encoding);
|
|
|