OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/wasm-compiler.h" | 5 #include "src/compiler/wasm-compiler.h" |
6 | 6 |
7 #include "src/isolate-inl.h" | 7 #include "src/isolate-inl.h" |
8 | 8 |
9 #include "src/base/platform/platform.h" | 9 #include "src/base/platform/platform.h" |
10 | 10 |
(...skipping 1579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1590 desc = Linkage::GetStubCallDescriptor(isolate, graph()->zone(), | 1590 desc = Linkage::GetStubCallDescriptor(isolate, graph()->zone(), |
1591 callable.descriptor(), wasm_count + 1, | 1591 callable.descriptor(), wasm_count + 1, |
1592 CallDescriptor::kNoFlags); | 1592 CallDescriptor::kNoFlags); |
1593 arg_count_before_args = true; | 1593 arg_count_before_args = true; |
1594 } | 1594 } |
1595 | 1595 |
1596 args[pos++] = jsgraph()->Constant(function); // JS function. | 1596 args[pos++] = jsgraph()->Constant(function); // JS function. |
1597 if (arg_count_before_args) { | 1597 if (arg_count_before_args) { |
1598 args[pos++] = jsgraph()->Int32Constant(wasm_count); // argument count | 1598 args[pos++] = jsgraph()->Int32Constant(wasm_count); // argument count |
1599 } | 1599 } |
1600 args[pos++] = jsgraph()->UndefinedConstant(); // JS receiver. | 1600 // JS receiver. |
| 1601 Handle<Object> global(function->context()->global_object(), isolate); |
| 1602 args[pos++] = jsgraph()->Constant(global); |
1601 | 1603 |
1602 // Convert WASM numbers to JS values. | 1604 // Convert WASM numbers to JS values. |
1603 for (int i = 0; i < wasm_count; i++) { | 1605 for (int i = 0; i < wasm_count; i++) { |
1604 Node* param = graph()->NewNode(jsgraph()->common()->Parameter(i), start); | 1606 Node* param = graph()->NewNode(jsgraph()->common()->Parameter(i), start); |
1605 args[pos++] = ToJS(param, context, sig->GetParam(i)); | 1607 args[pos++] = ToJS(param, context, sig->GetParam(i)); |
1606 } | 1608 } |
1607 | 1609 |
1608 if (add_new_target_undefined) { | 1610 if (add_new_target_undefined) { |
1609 args[pos++] = jsgraph()->UndefinedConstant(); // new target | 1611 args[pos++] = jsgraph()->UndefinedConstant(); // new target |
1610 } | 1612 } |
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2020 code->Disassemble(buffer.start(), os); | 2022 code->Disassemble(buffer.start(), os); |
2021 } | 2023 } |
2022 #endif | 2024 #endif |
2023 return code; | 2025 return code; |
2024 } | 2026 } |
2025 | 2027 |
2026 | 2028 |
2027 } // namespace compiler | 2029 } // namespace compiler |
2028 } // namespace internal | 2030 } // namespace internal |
2029 } // namespace v8 | 2031 } // namespace v8 |
OLD | NEW |