diff options
Diffstat (limited to 'src/ir/cost.h')
-rw-r--r-- | src/ir/cost.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ir/cost.h b/src/ir/cost.h index 3ed37e297..8ebc6eb9b 100644 --- a/src/ir/cost.h +++ b/src/ir/cost.h @@ -672,7 +672,7 @@ struct CostAnalyzer : public OverriddenVisitor<CostAnalyzer, CostType> { } CostType visitRefAs(RefAs* curr) { return 1 + visit(curr->value); } CostType visitStringNew(StringNew* curr) { - return 4 + visit(curr->ptr) + visit(curr->length); + return 8 + visit(curr->ptr) + visit(curr->length); } CostType visitStringConst(StringConst* curr) { return 4; } CostType visitStringMeasure(StringMeasure* curr) { @@ -701,6 +701,12 @@ struct CostAnalyzer : public OverriddenVisitor<CostAnalyzer, CostType> { CostType visitStringIterMove(StringIterMove* curr) { return 4 + visit(curr->ref) + visit(curr->num); } + CostType visitStringSliceWTF(StringSliceWTF* curr) { + return 8 + visit(curr->ref) + visit(curr->start) + visit(curr->end); + } + CostType visitStringSliceIter(StringSliceIter* curr) { + return 8 + visit(curr->ref) + visit(curr->num); + } private: CostType nullCheckCost(Expression* ref) { |