Index: src/compiler/simplified-operator.h |
diff --git a/src/compiler/simplified-operator.h b/src/compiler/simplified-operator.h |
index ca2bf6d24ba0aa507e1a41bdf05ba130b7d5f3f3..06ffc0c65831eb301eac3a48aac26dbff3d6cd8f 100644 |
--- a/src/compiler/simplified-operator.h |
+++ b/src/compiler/simplified-operator.h |
@@ -185,6 +185,14 @@ NumberOperationHint NumberOperationHintOf(const Operator* op) |
PretenureFlag PretenureFlagOf(const Operator* op) WARN_UNUSED_RESULT; |
+enum class StringOperationHint : uint8_t { |
Benedikt Meurer
2016/09/29 13:04:27
Please remove this optimization from this CL. Let'
|
+ kAny, // No restrictions on String input type |
+ kSeqStringOrExternalString, // SeqString or ExternalString only |
+}; |
+ |
+StringOperationHint StringOperationHintOf(const Operator*) WARN_UNUSED_RESULT; |
+UnicodeEncoding UnicodeEncodingOf(const Operator*) WARN_UNUSED_RESULT; |
+ |
// Interface for building simplified operators, which represent the |
// medium-level operations of V8, including adding numbers, allocating objects, |
// indexing into objects and arrays, etc. |
@@ -287,8 +295,10 @@ class SimplifiedOperatorBuilder final : public ZoneObject { |
const Operator* StringEqual(); |
const Operator* StringLessThan(); |
const Operator* StringLessThanOrEqual(); |
- const Operator* StringCharCodeAt(); |
+ const Operator* StringCharCodeAt( |
+ StringOperationHint hint = StringOperationHint::kAny); |
const Operator* StringFromCharCode(); |
+ const Operator* StringFromCodePoint(UnicodeEncoding encoding); |
const Operator* PlainPrimitiveToNumber(); |
const Operator* PlainPrimitiveToWord32(); |