v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
asm-js.cc File Reference
Include dependency graph for asm-js.cc:

Go to the source code of this file.

Classes

class  v8::internal::AsmJsCompilationJob
 

Namespaces

namespace  v8
 
namespace  v8::internal
 

Macros

#define STDLIB_MATH_FUNC(fname, FName, ignore1, ignore2)
 
#define STDLIB_MATH_CONST(cname, const_value)
 
#define STDLIB_ARRAY_TYPE(fname, FName)
 

Macro Definition Documentation

◆ STDLIB_ARRAY_TYPE

#define STDLIB_ARRAY_TYPE ( fname,
FName )
Value:
if (members.contains(wasm::AsmJsParser::StandardMember::k##FName)) { \
members.Remove(wasm::AsmJsParser::StandardMember::k##FName); \
*is_typed_array = true; \
DirectHandle<Name> name(isolate->factory()->InternalizeString( \
base::StaticCharVector(#FName))); \
DirectHandle<Object> value = \
JSReceiver::GetDataProperty(isolate, stdlib, name); \
if (!IsJSFunction(*value)) return false; \
DirectHandle<JSFunction> func = Cast<JSFunction>(value); \
if (!func.is_identical_to(isolate->fname())) return false; \
}
const char * name
Definition builtins.cc:39

◆ STDLIB_MATH_CONST

#define STDLIB_MATH_CONST ( cname,
const_value )
Value:
if (members.contains(wasm::AsmJsParser::StandardMember::kMath##cname)) { \
members.Remove(wasm::AsmJsParser::StandardMember::kMath##cname); \
DirectHandle<Name> name(isolate->factory()->InternalizeString( \
base::StaticCharVector(#cname))); \
DirectHandle<Object> value = StdlibMathMember(isolate, stdlib, name); \
if (!IsNumber(*value) || Object::NumberValue(*value) != const_value) \
return false; \
}

◆ STDLIB_MATH_FUNC

#define STDLIB_MATH_FUNC ( fname,
FName,
ignore1,
ignore2 )
Value:
if (members.contains(wasm::AsmJsParser::StandardMember::kMath##FName)) { \
members.Remove(wasm::AsmJsParser::StandardMember::kMath##FName); \
DirectHandle<Name> name(isolate->factory()->InternalizeString( \
base::StaticCharVector(#fname))); \
DirectHandle<Object> value = StdlibMathMember(isolate, stdlib, name); \
if (!IsJSFunction(*value)) return false; \
Tagged<SharedFunctionInfo> shared = Cast<JSFunction>(value)->shared(); \
if (!shared->HasBuiltinId() || \
shared->builtin_id() != Builtin::kMath##FName) { \
return false; \
} \
DCHECK_EQ(shared->GetCode(isolate), \
isolate->builtins()->code(Builtin::kMath##FName)); \
}