From 4c4d911cde4a6e968ddbfa835fdc050c9023d16c Mon Sep 17 00:00:00 2001 From: "bmeurer@chromium.org" Date: Wed, 20 Nov 2013 12:35:21 +0000 Subject: [PATCH] Convert constant numbers at compile time. TEST=mjsunit/number-tostring R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/77553005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/hydrogen.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/hydrogen.cc b/src/hydrogen.cc index 8d73c1e519..0c8e423fd8 100644 --- a/src/hydrogen.cc +++ b/src/hydrogen.cc @@ -1555,6 +1555,13 @@ HValue* HGraphBuilder::BuildNumberToString(HValue* object, Handle type) { NoObservableSideEffectsScope scope(this); + // Convert constant numbers at compile time. + if (object->IsConstant() && HConstant::cast(object)->HasNumberValue()) { + Handle number = HConstant::cast(object)->handle(isolate()); + Handle result = isolate()->factory()->NumberToString(number); + return Add(result); + } + // Create a joinable continuation. HIfContinuation found(graph()->CreateBasicBlock(), graph()->CreateBasicBlock());