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

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

Issue 2405253006: [builtins] implement Array.prototype[@@iterator] in TFJ builtins (Closed)
Patch Set: latest round Created 4 years, 2 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-typedarray.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 2efc5b3a67345192ad69c4a94cb2ee1f18d599d5..fb3b2f60f33cee54c5dec7195ae4238e9ff37ac8 100644
--- a/src/code-stub-assembler.h
+++ b/src/code-stub-assembler.h
@@ -20,6 +20,8 @@ class StubCache;
enum class PrimitiveType { kBoolean, kNumber, kString, kSymbol };
+enum class IterationKind { kKeys, kValues, kEntries };
+
#define HEAP_CONSTANT_LIST(V) \
V(BooleanMap, BooleanMap) \
V(empty_string, EmptyString) \
@@ -140,6 +142,9 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
WordOr(BitcastTaggedToWord(a), BitcastTaggedToWord(b)));
}
+ // Smi | HeapNumber operations.
+ compiler::Node* NumberInc(compiler::Node* value);
+
// Allocate an object of the given size.
compiler::Node* Allocate(compiler::Node* size, AllocationFlags flags = kNone);
compiler::Node* Allocate(int size, AllocationFlags flags = kNone);
@@ -296,6 +301,10 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
compiler::Node* LoadDoubleWithHoleCheck(
compiler::Node* base, compiler::Node* offset, Label* if_hole,
MachineType machine_type = MachineType::Float64());
+ compiler::Node* LoadFixedTypedArrayElement(
+ compiler::Node* data_pointer, compiler::Node* index_node,
+ ElementsKind elements_kind,
+ ParameterMode parameter_mode = INTEGER_PARAMETERS);
// Context manipulation
compiler::Node* LoadContextElement(compiler::Node* context, int slot_index);
@@ -407,6 +416,17 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
ParameterMode mode = INTEGER_PARAMETERS,
AllocationFlags flags = kNone);
+ // Perform CreateArrayIterator (ES6 #sec-createarrayiterator).
+ compiler::Node* CreateArrayIterator(compiler::Node* array,
+ compiler::Node* array_map,
+ compiler::Node* array_type,
+ compiler::Node* context,
+ IterationKind mode);
+
+ compiler::Node* AllocateJSArrayIterator(compiler::Node* array,
+ compiler::Node* array_map,
+ compiler::Node* map);
+
void FillFixedArrayWithValue(ElementsKind kind, compiler::Node* array,
compiler::Node* from_index,
compiler::Node* to_index,
@@ -908,6 +928,14 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
compiler::Node* lhs, compiler::Node* rhs,
compiler::Node* context);
+ void BranchIfNumericRelationalComparison(RelationalComparisonMode mode,
+ compiler::Node* lhs,
+ compiler::Node* rhs, Label* if_true,
+ Label* if_false);
+
+ void GotoUnlessNumberLessThan(compiler::Node* lhs, compiler::Node* rhs,
+ Label* if_false);
+
enum ResultMode { kDontNegateResult, kNegateResult };
compiler::Node* Equal(ResultMode mode, compiler::Node* lhs,
@@ -927,6 +955,9 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
compiler::Node* InstanceOf(compiler::Node* object, compiler::Node* callable,
compiler::Node* context);
+ // TypedArray/ArrayBuffer helpers
+ compiler::Node* IsDetachedBuffer(compiler::Node* buffer);
+
private:
enum ElementSupport { kOnlyProperties, kSupportElements };
« no previous file with comments | « src/builtins/builtins-typedarray.cc ('k') | src/code-stub-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698