Chromium Code Reviews| 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/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 // Required to get M_E etc. in MSVC. | 7 // Required to get M_E etc. in MSVC. |
| 8 #if defined(_WIN32) | 8 #if defined(_WIN32) |
| 9 #define _USE_MATH_DEFINES | 9 #define _USE_MATH_DEFINES |
| 10 #endif | 10 #endif |
| (...skipping 696 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 707 ZoneList<ObjectLiteralProperty*>* props = expr->properties(); | 707 ZoneList<ObjectLiteralProperty*>* props = expr->properties(); |
| 708 for (int i = 0; i < props->length(); ++i) { | 708 for (int i = 0; i < props->length(); ++i) { |
| 709 ObjectLiteralProperty* prop = props->at(i); | 709 ObjectLiteralProperty* prop = props->at(i); |
| 710 DCHECK_EQ(kExportScope, scope_); | 710 DCHECK_EQ(kExportScope, scope_); |
| 711 VariableProxy* expr = prop->value()->AsVariableProxy(); | 711 VariableProxy* expr = prop->value()->AsVariableProxy(); |
| 712 DCHECK_NOT_NULL(expr); | 712 DCHECK_NOT_NULL(expr); |
| 713 Variable* var = expr->var(); | 713 Variable* var = expr->var(); |
| 714 Literal* name = prop->key()->AsLiteral(); | 714 Literal* name = prop->key()->AsLiteral(); |
| 715 DCHECK_NOT_NULL(name); | 715 DCHECK_NOT_NULL(name); |
| 716 DCHECK(name->IsPropertyName()); | 716 DCHECK(name->IsPropertyName()); |
| 717 const AstRawString* raw_name = name->AsRawPropertyName(); | 717 Handle<String> function_name = name->AsPropertyName(); |
| 718 int length; | |
| 719 std::unique_ptr<char[]> utf8 = function_name->ToCString( | |
|
titzer
2016/12/07 16:19:18
Mmmm, I think this might be a dangling reference..
bradn
2016/12/08 08:50:24
ExportAs converts the Vector<char> to a ZoneVector
| |
| 720 DISALLOW_NULLS, FAST_STRING_TRAVERSAL, &length); | |
| 718 if (var->is_function()) { | 721 if (var->is_function()) { |
| 719 WasmFunctionBuilder* function = LookupOrInsertFunction(var); | 722 WasmFunctionBuilder* function = LookupOrInsertFunction(var); |
| 720 function->ExportAs({reinterpret_cast<const char*>(raw_name->raw_data()), | 723 function->ExportAs({utf8.get(), length}); |
| 721 raw_name->length()}); | |
| 722 } | 724 } |
| 723 } | 725 } |
| 724 } | 726 } |
| 725 | 727 |
| 726 void VisitArrayLiteral(ArrayLiteral* expr) { UNREACHABLE(); } | 728 void VisitArrayLiteral(ArrayLiteral* expr) { UNREACHABLE(); } |
| 727 | 729 |
| 728 void LoadInitFunction() { | 730 void LoadInitFunction() { |
| 729 current_function_builder_ = init_function_; | 731 current_function_builder_ = init_function_; |
| 730 scope_ = kInitScope; | 732 scope_ = kInitScope; |
| 731 } | 733 } |
| (...skipping 1231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1963 impl.builder_->WriteAsmJsOffsetTable(*asm_offsets_buffer); | 1965 impl.builder_->WriteAsmJsOffsetTable(*asm_offsets_buffer); |
| 1964 return {module_buffer, asm_offsets_buffer, success}; | 1966 return {module_buffer, asm_offsets_buffer, success}; |
| 1965 } | 1967 } |
| 1966 | 1968 |
| 1967 const char* AsmWasmBuilder::foreign_init_name = "__foreign_init__"; | 1969 const char* AsmWasmBuilder::foreign_init_name = "__foreign_init__"; |
| 1968 const char* AsmWasmBuilder::single_function_name = "__single_function__"; | 1970 const char* AsmWasmBuilder::single_function_name = "__single_function__"; |
| 1969 | 1971 |
| 1970 } // namespace wasm | 1972 } // namespace wasm |
| 1971 } // namespace internal | 1973 } // namespace internal |
| 1972 } // namespace v8 | 1974 } // namespace v8 |
| OLD | NEW |