Chromium Code Reviews| Index: src/compiler/js-builtin-reducer.cc |
| diff --git a/src/compiler/js-builtin-reducer.cc b/src/compiler/js-builtin-reducer.cc |
| index 3023031c2f4f82f0a923652cd47198bae98fd512..aae8d8f374519685c4d42a492266b689d9e8a4fb 100644 |
| --- a/src/compiler/js-builtin-reducer.cc |
| +++ b/src/compiler/js-builtin-reducer.cc |
| @@ -168,6 +168,17 @@ Reduction JSBuiltinReducer::ReduceMathRound(Node* node) { |
| return NoChange(); |
| } |
| +// ES6 section 20.2.2.28 Math.sqrt ( x ) |
|
Michael Starzinger
2016/03/22 12:54:32
nit: s/20.2.2.28/20.2.2.32/ ... or whatever other
Benedikt Meurer
2016/03/22 13:01:18
Done.
|
| +Reduction JSBuiltinReducer::ReduceMathSqrt(Node* node) { |
| + JSCallReduction r(node); |
| + if (r.InputsMatchOne(Type::Number())) { |
| + // Math.sqrt(a:number) -> Float64Sqrt(a) |
| + Node* value = graph()->NewNode(machine()->Float64Sqrt(), r.left()); |
| + return Replace(value); |
| + } |
| + return NoChange(); |
| +} |
| + |
| Reduction JSBuiltinReducer::Reduce(Node* node) { |
| Reduction reduction = NoChange(); |
| JSCallReduction r(node); |
| @@ -187,6 +198,9 @@ Reduction JSBuiltinReducer::Reduce(Node* node) { |
| case kMathRound: |
| reduction = ReduceMathRound(node); |
| break; |
| + case kMathSqrt: |
| + reduction = ReduceMathSqrt(node); |
| + break; |
| default: |
| break; |
| } |