OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/compiler/js-builtin-reducer.h" | 5 #include "src/compiler/js-builtin-reducer.h" |
6 #include "src/compiler/js-graph.h" | 6 #include "src/compiler/js-graph.h" |
7 #include "src/compiler/node-properties.h" | 7 #include "src/compiler/node-properties.h" |
8 #include "src/compiler/simplified-operator.h" | 8 #include "src/compiler/simplified-operator.h" |
9 #include "src/compiler/typer.h" | 9 #include "src/compiler/typer.h" |
10 #include "src/isolate-inl.h" | 10 #include "src/isolate-inl.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 protected: | 26 protected: |
27 Reduction Reduce(Node* node, MachineOperatorBuilder::Flags flags = | 27 Reduction Reduce(Node* node, MachineOperatorBuilder::Flags flags = |
28 MachineOperatorBuilder::Flag::kNoFlags) { | 28 MachineOperatorBuilder::Flag::kNoFlags) { |
29 MachineOperatorBuilder machine(zone(), MachineType::PointerRepresentation(), | 29 MachineOperatorBuilder machine(zone(), MachineType::PointerRepresentation(), |
30 flags); | 30 flags); |
31 SimplifiedOperatorBuilder simplified(zone()); | 31 SimplifiedOperatorBuilder simplified(zone()); |
32 JSGraph jsgraph(isolate(), graph(), common(), javascript(), &simplified, | 32 JSGraph jsgraph(isolate(), graph(), common(), javascript(), &simplified, |
33 &machine); | 33 &machine); |
34 // TODO(titzer): mock the GraphReducer here for better unit testing. | 34 // TODO(titzer): mock the GraphReducer here for better unit testing. |
35 GraphReducer graph_reducer(zone(), graph()); | 35 GraphReducer graph_reducer(zone(), graph()); |
36 JSBuiltinReducer reducer(&graph_reducer, &jsgraph); | 36 JSBuiltinReducer reducer(&graph_reducer, &jsgraph, |
| 37 JSBuiltinReducer::kNoFlags, nullptr); |
37 return reducer.Reduce(node); | 38 return reducer.Reduce(node); |
38 } | 39 } |
39 | 40 |
40 Node* MathFunction(const char* name) { | 41 Node* MathFunction(const char* name) { |
41 Handle<Object> m = | 42 Handle<Object> m = |
42 JSObject::GetProperty(isolate()->global_object(), | 43 JSObject::GetProperty(isolate()->global_object(), |
43 isolate()->factory()->NewStringFromAsciiChecked( | 44 isolate()->factory()->NewStringFromAsciiChecked( |
44 "Math")).ToHandleChecked(); | 45 "Math")).ToHandleChecked(); |
45 Handle<JSFunction> f = Handle<JSFunction>::cast( | 46 Handle<JSFunction> f = Handle<JSFunction>::cast( |
46 Object::GetProperty( | 47 Object::GetProperty( |
(...skipping 1344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1391 Reduction r = Reduce(call); | 1392 Reduction r = Reduce(call); |
1392 | 1393 |
1393 ASSERT_TRUE(r.Changed()); | 1394 ASSERT_TRUE(r.Changed()); |
1394 EXPECT_THAT(r.replacement(), | 1395 EXPECT_THAT(r.replacement(), |
1395 IsStringFromCharCode(IsPlainPrimitiveToNumber(p0))); | 1396 IsStringFromCharCode(IsPlainPrimitiveToNumber(p0))); |
1396 } | 1397 } |
1397 | 1398 |
1398 } // namespace compiler | 1399 } // namespace compiler |
1399 } // namespace internal | 1400 } // namespace internal |
1400 } // namespace v8 | 1401 } // namespace v8 |
OLD | NEW |