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/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 Loading... | |
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 ModuleOrigin origin = compiled_module->module()->get_origin(); |
225 | 225 |
226 Handle<JSObject> module_object; | 226 Handle<JSObject> module_object; |
227 if (origin == ModuleOrigin::kWasmOrigin) { | 227 if (origin == ModuleOrigin::kWasmOrigin) { |
Mircea Trofin
2017/03/24 22:25:15
why not use the is_wasm() / is_asm_js() APIs here,
Karl
2017/03/24 22:41:40
It is, look up at line 224.
Mircea Trofin
2017/03/24 22:43:42
that's get_origin()
Karl
2017/03/24 22:51:17
Ok. I see. I didn't read the usage well enough. Ch
| |
228 Handle<JSFunction> module_cons( | 228 Handle<JSFunction> module_cons( |
229 isolate->native_context()->wasm_module_constructor()); | 229 isolate->native_context()->wasm_module_constructor()); |
230 module_object = isolate->factory()->NewJSObject(module_cons); | 230 module_object = isolate->factory()->NewJSObject(module_cons); |
231 Handle<Symbol> module_sym(isolate->native_context()->wasm_module_sym()); | 231 Handle<Symbol> module_sym(isolate->native_context()->wasm_module_sym()); |
232 Object::SetProperty(module_object, module_sym, module_object, STRICT) | 232 Object::SetProperty(module_object, module_sym, module_object, STRICT) |
233 .Check(); | 233 .Check(); |
234 } else { | 234 } else { |
235 DCHECK(origin == ModuleOrigin::kAsmJsOrigin); | 235 DCHECK(origin == ModuleOrigin::kAsmJsOrigin); |
236 Handle<Map> map = isolate->factory()->NewMap( | 236 Handle<Map> map = isolate->factory()->NewMap( |
237 JS_OBJECT_TYPE, | 237 JS_OBJECT_TYPE, |
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
577 } | 577 } |
578 if (!asm_js_offset_table.is_null()) { | 578 if (!asm_js_offset_table.is_null()) { |
579 arr->set(kAsmJsOffsetTable, *asm_js_offset_table); | 579 arr->set(kAsmJsOffsetTable, *asm_js_offset_table); |
580 } | 580 } |
581 | 581 |
582 DCHECK(WasmSharedModuleData::IsWasmSharedModuleData(*arr)); | 582 DCHECK(WasmSharedModuleData::IsWasmSharedModuleData(*arr)); |
583 return Handle<WasmSharedModuleData>::cast(arr); | 583 return Handle<WasmSharedModuleData>::cast(arr); |
584 } | 584 } |
585 | 585 |
586 bool WasmSharedModuleData::is_asm_js() { | 586 bool WasmSharedModuleData::is_asm_js() { |
587 bool asm_js = module()->origin == wasm::ModuleOrigin::kAsmJsOrigin; | 587 bool asm_js = module()->is_asm_js(); |
588 DCHECK_EQ(asm_js, script()->IsUserJavaScript()); | 588 DCHECK_EQ(asm_js, script()->IsUserJavaScript()); |
589 DCHECK_EQ(asm_js, has_asm_js_offset_table()); | 589 DCHECK_EQ(asm_js, has_asm_js_offset_table()); |
590 return asm_js; | 590 return asm_js; |
591 } | 591 } |
592 | 592 |
593 void WasmSharedModuleData::ReinitializeAfterDeserialization( | 593 void WasmSharedModuleData::ReinitializeAfterDeserialization( |
594 Isolate* isolate, Handle<WasmSharedModuleData> shared) { | 594 Isolate* isolate, Handle<WasmSharedModuleData> shared) { |
595 DCHECK(shared->get(kModuleWrapper)->IsUndefined(isolate)); | 595 DCHECK(shared->get(kModuleWrapper)->IsUndefined(isolate)); |
596 #ifdef DEBUG | 596 #ifdef DEBUG |
597 // No BreakpointInfo objects should survive deserialization. | 597 // No BreakpointInfo objects should survive deserialization. |
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1215 if (!array->get(kWrapperInstanceObject)->IsWeakCell()) return false; | 1215 if (!array->get(kWrapperInstanceObject)->IsWeakCell()) return false; |
1216 Isolate* isolate = array->GetIsolate(); | 1216 Isolate* isolate = array->GetIsolate(); |
1217 if (!array->get(kNextInstanceWrapper)->IsUndefined(isolate) && | 1217 if (!array->get(kNextInstanceWrapper)->IsUndefined(isolate) && |
1218 !array->get(kNextInstanceWrapper)->IsFixedArray()) | 1218 !array->get(kNextInstanceWrapper)->IsFixedArray()) |
1219 return false; | 1219 return false; |
1220 if (!array->get(kPreviousInstanceWrapper)->IsUndefined(isolate) && | 1220 if (!array->get(kPreviousInstanceWrapper)->IsUndefined(isolate) && |
1221 !array->get(kPreviousInstanceWrapper)->IsFixedArray()) | 1221 !array->get(kPreviousInstanceWrapper)->IsFixedArray()) |
1222 return false; | 1222 return false; |
1223 return true; | 1223 return true; |
1224 } | 1224 } |
OLD | NEW |