Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(272)

Side by Side Diff: src/wasm/wasm-objects.cc

Issue 2771803005: Hide WasmModule.origin field behind readable accessors. (Closed)
Patch Set: Use boolean accessors instead of get_origin. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/wasm/wasm-module.cc ('k') | test/cctest/wasm/wasm-run-utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/wasm/wasm-objects.h" 5 #include "src/wasm/wasm-objects.h"
6 #include "src/utils.h" 6 #include "src/utils.h"
7 7
8 #include "src/assembler-inl.h" 8 #include "src/assembler-inl.h"
9 #include "src/base/iterator.h" 9 #include "src/base/iterator.h"
10 #include "src/compiler/wasm-compiler.h" 10 #include "src/compiler/wasm-compiler.h"
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 if (offset == static_cast<uint32_t>(offset_in_func)) return true; 214 if (offset == static_cast<uint32_t>(offset_in_func)) return true;
215 } 215 }
216 return false; 216 return false;
217 } 217 }
218 #endif // DEBUG 218 #endif // DEBUG
219 219
220 } // namespace 220 } // namespace
221 221
222 Handle<WasmModuleObject> WasmModuleObject::New( 222 Handle<WasmModuleObject> WasmModuleObject::New(
223 Isolate* isolate, Handle<WasmCompiledModule> compiled_module) { 223 Isolate* isolate, Handle<WasmCompiledModule> compiled_module) {
224 ModuleOrigin origin = compiled_module->module()->origin; 224 WasmModule* module = compiled_module->module();
225
226 Handle<JSObject> module_object; 225 Handle<JSObject> module_object;
227 if (origin == ModuleOrigin::kWasmOrigin) { 226 if (module->is_wasm()) {
228 Handle<JSFunction> module_cons( 227 Handle<JSFunction> module_cons(
229 isolate->native_context()->wasm_module_constructor()); 228 isolate->native_context()->wasm_module_constructor());
230 module_object = isolate->factory()->NewJSObject(module_cons); 229 module_object = isolate->factory()->NewJSObject(module_cons);
231 Handle<Symbol> module_sym(isolate->native_context()->wasm_module_sym()); 230 Handle<Symbol> module_sym(isolate->native_context()->wasm_module_sym());
232 Object::SetProperty(module_object, module_sym, module_object, STRICT) 231 Object::SetProperty(module_object, module_sym, module_object, STRICT)
233 .Check(); 232 .Check();
234 } else { 233 } else {
235 DCHECK(origin == ModuleOrigin::kAsmJsOrigin); 234 DCHECK(module->is_asm_js());
236 Handle<Map> map = isolate->factory()->NewMap( 235 Handle<Map> map = isolate->factory()->NewMap(
237 JS_OBJECT_TYPE, 236 JS_OBJECT_TYPE,
238 JSObject::kHeaderSize + WasmModuleObject::kFieldCount * kPointerSize); 237 JSObject::kHeaderSize + WasmModuleObject::kFieldCount * kPointerSize);
239 module_object = isolate->factory()->NewJSObjectFromMap(map, TENURED); 238 module_object = isolate->factory()->NewJSObjectFromMap(map, TENURED);
240 } 239 }
241 module_object->SetEmbedderField(WasmModuleObject::kCompiledModule, 240 module_object->SetEmbedderField(WasmModuleObject::kCompiledModule,
242 *compiled_module); 241 *compiled_module);
243 Handle<WeakCell> link_to_module = 242 Handle<WeakCell> link_to_module =
244 isolate->factory()->NewWeakCell(module_object); 243 isolate->factory()->NewWeakCell(module_object);
245 compiled_module->set_weak_wasm_module(link_to_module); 244 compiled_module->set_weak_wasm_module(link_to_module);
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 } 576 }
578 if (!asm_js_offset_table.is_null()) { 577 if (!asm_js_offset_table.is_null()) {
579 arr->set(kAsmJsOffsetTable, *asm_js_offset_table); 578 arr->set(kAsmJsOffsetTable, *asm_js_offset_table);
580 } 579 }
581 580
582 DCHECK(WasmSharedModuleData::IsWasmSharedModuleData(*arr)); 581 DCHECK(WasmSharedModuleData::IsWasmSharedModuleData(*arr));
583 return Handle<WasmSharedModuleData>::cast(arr); 582 return Handle<WasmSharedModuleData>::cast(arr);
584 } 583 }
585 584
586 bool WasmSharedModuleData::is_asm_js() { 585 bool WasmSharedModuleData::is_asm_js() {
587 bool asm_js = module()->origin == wasm::ModuleOrigin::kAsmJsOrigin; 586 bool asm_js = module()->is_asm_js();
588 DCHECK_EQ(asm_js, script()->IsUserJavaScript()); 587 DCHECK_EQ(asm_js, script()->IsUserJavaScript());
589 DCHECK_EQ(asm_js, has_asm_js_offset_table()); 588 DCHECK_EQ(asm_js, has_asm_js_offset_table());
590 return asm_js; 589 return asm_js;
591 } 590 }
592 591
593 void WasmSharedModuleData::ReinitializeAfterDeserialization( 592 void WasmSharedModuleData::ReinitializeAfterDeserialization(
594 Isolate* isolate, Handle<WasmSharedModuleData> shared) { 593 Isolate* isolate, Handle<WasmSharedModuleData> shared) {
595 DCHECK(shared->get(kModuleWrapper)->IsUndefined(isolate)); 594 DCHECK(shared->get(kModuleWrapper)->IsUndefined(isolate));
596 #ifdef DEBUG 595 #ifdef DEBUG
597 // No BreakpointInfo objects should survive deserialization. 596 // No BreakpointInfo objects should survive deserialization.
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after
1215 if (!array->get(kWrapperInstanceObject)->IsWeakCell()) return false; 1214 if (!array->get(kWrapperInstanceObject)->IsWeakCell()) return false;
1216 Isolate* isolate = array->GetIsolate(); 1215 Isolate* isolate = array->GetIsolate();
1217 if (!array->get(kNextInstanceWrapper)->IsUndefined(isolate) && 1216 if (!array->get(kNextInstanceWrapper)->IsUndefined(isolate) &&
1218 !array->get(kNextInstanceWrapper)->IsFixedArray()) 1217 !array->get(kNextInstanceWrapper)->IsFixedArray())
1219 return false; 1218 return false;
1220 if (!array->get(kPreviousInstanceWrapper)->IsUndefined(isolate) && 1219 if (!array->get(kPreviousInstanceWrapper)->IsUndefined(isolate) &&
1221 !array->get(kPreviousInstanceWrapper)->IsFixedArray()) 1220 !array->get(kPreviousInstanceWrapper)->IsFixedArray())
1222 return false; 1221 return false;
1223 return true; 1222 return true;
1224 } 1223 }
OLDNEW
« no previous file with comments | « src/wasm/wasm-module.cc ('k') | test/cctest/wasm/wasm-run-utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698