blob: babc684d04ffc2a018315ffbcecba2ac1e04cce7 [file] [log] [blame]
/**
* @license
* Copyright 2019 The Emscripten Authors
* SPDX-License-Identifier: MIT
*/
#if !USE_ASAN
#error "should only be inclded in USE_ASAN mode"
#endif
// C versions of asan_js_{load|store}_* will be used from compiled code, which have
// ASan instrumentation on them. However, until the wasm module is ready, we
// must access things directly.
/** @suppress{duplicate} */
function _asan_js_load_1(ptr) {
if (runtimeInitialized) return __asan_c_load_1(ptr);
return HEAP8[ptr];
}
/** @suppress{duplicate} */
function _asan_js_load_1u(ptr) {
if (runtimeInitialized) return __asan_c_load_1u(ptr);
return HEAPU8[ptr];
}
/** @suppress{duplicate} */
function _asan_js_load_2(ptr) {
if (runtimeInitialized) return __asan_c_load_2(ptr);
return HEAP16[ptr];
}
/** @suppress{duplicate} */
function _asan_js_load_2u(ptr) {
if (runtimeInitialized) return __asan_c_load_2u(ptr);
return HEAPU16[ptr];
}
/** @suppress{duplicate} */
function _asan_js_load_4(ptr) {
if (runtimeInitialized) return __asan_c_load_4(ptr);
return HEAP32[ptr];
}
/** @suppress{duplicate} */
function _asan_js_load_4u(ptr) {
if (runtimeInitialized) return __asan_c_load_4u(ptr) >>> 0;
return HEAPU32[ptr];
}
/** @suppress{duplicate} */
function _asan_js_load_f(ptr) {
if (runtimeInitialized) return __asan_c_load_f(ptr);
return HEAPF32[ptr];
}
/** @suppress{duplicate} */
function _asan_js_load_d(ptr) {
if (runtimeInitialized) return __asan_c_load_d(ptr);
return HEAPF64[ptr];
}
/** @suppress{duplicate} */
function _asan_js_store_1(ptr, val) {
if (runtimeInitialized) return __asan_c_store_1(ptr, val);
return HEAP8[ptr] = val;
}
/** @suppress{duplicate} */
function _asan_js_store_1u(ptr, val) {
if (runtimeInitialized) return __asan_c_store_1u(ptr, val);
return HEAPU8[ptr] = val;
}
/** @suppress{duplicate} */
function _asan_js_store_2(ptr, val) {
if (runtimeInitialized) return __asan_c_store_2(ptr, val);
return HEAP16[ptr] = val;
}
/** @suppress{duplicate} */
function _asan_js_store_2u(ptr, val) {
if (runtimeInitialized) return __asan_c_store_2u(ptr, val);
return HEAPU16[ptr] = val;
}
/** @suppress{duplicate} */
function _asan_js_store_4(ptr, val) {
if (runtimeInitialized) return __asan_c_store_4(ptr, val);
return HEAP32[ptr] = val;
}
/** @suppress{duplicate} */
function _asan_js_store_4u(ptr, val) {
if (runtimeInitialized) return __asan_c_store_4u(ptr, val) >>> 0;
return HEAPU32[ptr] = val;
}
/** @suppress{duplicate} */
function _asan_js_store_f(ptr, val) {
if (runtimeInitialized) return __asan_c_store_f(ptr, val);
return HEAPF32[ptr] = val;
}
/** @suppress{duplicate} */
function _asan_js_store_d(ptr, val) {
if (runtimeInitialized) return __asan_c_store_d(ptr, val);
return HEAPF64[ptr] = val;
}