Index: Source/bindings/core/v8/V8Initializer.cpp |
diff --git a/Source/bindings/core/v8/V8Initializer.cpp b/Source/bindings/core/v8/V8Initializer.cpp |
index 8b29c7083c80ca58616c425abed89460478dd10c..f39ca85c4e6ceb271a1d8a541d9f8058e7ce5463 100644 |
--- a/Source/bindings/core/v8/V8Initializer.cpp |
+++ b/Source/bindings/core/v8/V8Initializer.cpp |
@@ -52,6 +52,7 @@ |
#include "platform/EventDispatchForbiddenScope.h" |
#include "platform/RuntimeEnabledFeatures.h" |
#include "platform/TraceEvent.h" |
+#include "platform/heap/AddressSanitizer.h" |
#include "platform/scheduler/Scheduler.h" |
#include "public/platform/Platform.h" |
#include "wtf/RefPtr.h" |
@@ -500,6 +501,10 @@ static void messageHandlerInWorker(v8::Handle<v8::Message> message, v8::Handle<v |
static const int kWorkerMaxStackSize = 500 * 1024; |
+// This function uses a local stack variable to determine the isolate's stack limit. AddressSanitizer may |
+// relocate that local variable to a fake stack, which may lead to problems during JavaScript execution. |
+// Therefore we disable AddressSanitizer for V8Initializer::initializeWorker(). |
+NO_SANITIZE_ADDRESS |
void V8Initializer::initializeWorker(v8::Isolate* isolate) |
{ |
initializeV8Common(isolate); |