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

Side by Side Diff: src/asmjs/asm-js.cc

Issue 2264913002: [wasm] asm.js - Remove Wasm.instantiateModuleFromAsm, use asm.js directly. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix Created 4 years, 3 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 | « no previous file | src/asmjs/asm-typer.cc » ('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/asmjs/asm-js.h" 5 #include "src/asmjs/asm-js.h"
6 6
7 #include "src/api-natives.h" 7 #include "src/api-natives.h"
8 #include "src/api.h" 8 #include "src/api.h"
9 #include "src/asmjs/asm-typer.h" 9 #include "src/asmjs/asm-typer.h"
10 #include "src/asmjs/asm-wasm-builder.h" 10 #include "src/asmjs/asm-wasm-builder.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 compiled_module = result.val->CompileFunctions(isolate, thrower); 49 compiled_module = result.val->CompileFunctions(isolate, thrower);
50 } 50 }
51 51
52 if (result.val) delete result.val; 52 if (result.val) delete result.val;
53 return compiled_module; 53 return compiled_module;
54 } 54 }
55 55
56 Handle<i::Object> StdlibMathMember(i::Isolate* isolate, 56 Handle<i::Object> StdlibMathMember(i::Isolate* isolate,
57 Handle<JSReceiver> stdlib, 57 Handle<JSReceiver> stdlib,
58 Handle<Name> name) { 58 Handle<Name> name) {
59 if (stdlib.is_null()) {
60 return Handle<i::Object>();
61 }
59 Handle<i::Name> math_name( 62 Handle<i::Name> math_name(
60 isolate->factory()->InternalizeOneByteString(STATIC_CHAR_VECTOR("Math"))); 63 isolate->factory()->InternalizeOneByteString(STATIC_CHAR_VECTOR("Math")));
61 MaybeHandle<i::Object> maybe_math = i::Object::GetProperty(stdlib, math_name); 64 MaybeHandle<i::Object> maybe_math = i::Object::GetProperty(stdlib, math_name);
62 if (maybe_math.is_null()) { 65 if (maybe_math.is_null()) {
63 return Handle<i::Object>(); 66 return Handle<i::Object>();
64 } 67 }
65 Handle<i::Object> math = maybe_math.ToHandleChecked(); 68 Handle<i::Object> math = maybe_math.ToHandleChecked();
66 if (!math->IsJSReceiver()) { 69 if (!math->IsJSReceiver()) {
67 return Handle<i::Object>(); 70 return Handle<i::Object>();
68 } 71 }
(...skipping 13 matching lines...) Expand all
82 switch (member_kind) { 85 switch (member_kind) {
83 case wasm::AsmTyper::StandardMember::kNone: 86 case wasm::AsmTyper::StandardMember::kNone:
84 case wasm::AsmTyper::StandardMember::kModule: 87 case wasm::AsmTyper::StandardMember::kModule:
85 case wasm::AsmTyper::StandardMember::kStdlib: 88 case wasm::AsmTyper::StandardMember::kStdlib:
86 case wasm::AsmTyper::StandardMember::kHeap: 89 case wasm::AsmTyper::StandardMember::kHeap:
87 case wasm::AsmTyper::StandardMember::kFFI: { 90 case wasm::AsmTyper::StandardMember::kFFI: {
88 // Nothing to check for these. 91 // Nothing to check for these.
89 return true; 92 return true;
90 } 93 }
91 case wasm::AsmTyper::StandardMember::kInfinity: { 94 case wasm::AsmTyper::StandardMember::kInfinity: {
95 if (stdlib.is_null()) {
96 return false;
97 }
92 Handle<i::Name> name(isolate->factory()->InternalizeOneByteString( 98 Handle<i::Name> name(isolate->factory()->InternalizeOneByteString(
93 STATIC_CHAR_VECTOR("Infinity"))); 99 STATIC_CHAR_VECTOR("Infinity")));
94 MaybeHandle<i::Object> maybe_value = i::Object::GetProperty(stdlib, name); 100 MaybeHandle<i::Object> maybe_value = i::Object::GetProperty(stdlib, name);
95 if (maybe_value.is_null()) { 101 if (maybe_value.is_null()) {
96 return false; 102 return false;
97 } 103 }
98 Handle<i::Object> value = maybe_value.ToHandleChecked(); 104 Handle<i::Object> value = maybe_value.ToHandleChecked();
99 return value->IsNumber() && std::isinf(value->Number()); 105 return value->IsNumber() && std::isinf(value->Number());
100 } 106 }
101 case wasm::AsmTyper::StandardMember::kNaN: { 107 case wasm::AsmTyper::StandardMember::kNaN: {
108 if (stdlib.is_null()) {
109 return false;
110 }
102 Handle<i::Name> name(isolate->factory()->InternalizeOneByteString( 111 Handle<i::Name> name(isolate->factory()->InternalizeOneByteString(
103 STATIC_CHAR_VECTOR("NaN"))); 112 STATIC_CHAR_VECTOR("NaN")));
104 MaybeHandle<i::Object> maybe_value = i::Object::GetProperty(stdlib, name); 113 MaybeHandle<i::Object> maybe_value = i::Object::GetProperty(stdlib, name);
105 if (maybe_value.is_null()) { 114 if (maybe_value.is_null()) {
106 return false; 115 return false;
107 } 116 }
108 Handle<i::Object> value = maybe_value.ToHandleChecked(); 117 Handle<i::Object> value = maybe_value.ToHandleChecked();
109 return value->IsNaN(); 118 return value->IsNaN();
110 } 119 }
111 #define STDLIB_MATH_FUNC(CamelName, fname) \ 120 #define STDLIB_MATH_FUNC(CamelName, fname) \
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 continue; 259 continue;
251 } 260 }
252 } 261 }
253 } 262 }
254 foreign_args_array[j] = undefined; 263 foreign_args_array[j] = undefined;
255 } 264 }
256 i::MaybeHandle<i::Object> retval = i::Execution::Call( 265 i::MaybeHandle<i::Object> retval = i::Execution::Call(
257 isolate, init, undefined, foreign_globals->length(), foreign_args_array); 266 isolate, init, undefined, foreign_globals->length(), foreign_args_array);
258 delete[] foreign_args_array; 267 delete[] foreign_args_array;
259 268
260 if (retval.is_null()) { 269 DCHECK(!retval.is_null());
261 thrower.Error( 270
262 "WASM.instantiateModuleFromAsm(): foreign init function failed");
263 return MaybeHandle<Object>();
264 }
265 return maybe_module_object; 271 return maybe_module_object;
266 } 272 }
267 273
268 } // namespace internal 274 } // namespace internal
269 } // namespace v8 275 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/asmjs/asm-typer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698