Merge V8 5.2.361.47 DO NOT MERGE
https://chromium.googlesource.com/v8/v8/+/5.2.361.47
FPIIM-449
Change-Id: Ibec421b85a9b88cb3a432ada642e469fe7e78346
(cherry picked from commit bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8)
diff --git a/src/compiler/simplified-lowering.h b/src/compiler/simplified-lowering.h
index 8b711a9..baffe20 100644
--- a/src/compiler/simplified-lowering.h
+++ b/src/compiler/simplified-lowering.h
@@ -21,6 +21,7 @@
// Forward declarations.
class RepresentationChanger;
+class RepresentationSelector;
class SourcePositionTable;
class SimplifiedLowering final {
@@ -31,6 +32,10 @@
void LowerAllNodes();
+ void DoJSToNumberTruncatesToFloat64(Node* node,
+ RepresentationSelector* selector);
+ void DoJSToNumberTruncatesToWord32(Node* node,
+ RepresentationSelector* selector);
// TODO(turbofan): The representation can be removed once the result of the
// representation analysis is stored in the node bounds.
void DoLoadBuffer(Node* node, MachineRepresentation rep,
@@ -38,15 +43,12 @@
void DoStoreBuffer(Node* node);
void DoShift(Node* node, Operator const* op, Type* rhs_type);
- // TODO(bmeurer): This is a gigantic hack to support the gigantic LoadBuffer
- // typing hack to support the gigantic "asm.js should be fast without proper
- // verifier"-hack, ... Kill this! Soon! Really soon! I'm serious!
- bool abort_compilation_ = false;
-
private:
JSGraph* const jsgraph_;
Zone* const zone_;
TypeCache const& type_cache_;
+ SetOncePointer<Node> to_number_code_;
+ SetOncePointer<Operator const> to_number_operator_;
// TODO(danno): SimplifiedLowering shouldn't know anything about the source
// positions table, but must for now since there currently is no other way to
@@ -64,6 +66,9 @@
Node* Uint32Div(Node* const node);
Node* Uint32Mod(Node* const node);
+ Node* ToNumberCode();
+ Operator const* ToNumberOperator();
+
friend class RepresentationSelector;
Isolate* isolate() { return jsgraph_->isolate(); }
@@ -72,6 +77,7 @@
Graph* graph() { return jsgraph()->graph(); }
CommonOperatorBuilder* common() { return jsgraph()->common(); }
MachineOperatorBuilder* machine() { return jsgraph()->machine(); }
+ SimplifiedOperatorBuilder* simplified() { return jsgraph()->simplified(); }
};
} // namespace compiler