  
      if (m_frame->document())
          context->AllowCodeGenerationFromStrings(m_frame->document()->contentSecurityPolicy()->allowEval(0, ContentSecurityPolicy::SuppressReport));
-@@ -339,6 +375,28 @@ bool V8DOMWindowShell::initContextIfNeeded()
+@@ -339,6 +381,28 @@ bool V8DOMWindowShell::initContextIfNeeded()
      // we do isolated worlds the WebCore way.
      m_frame->loader()->dispatchDidClearWindowObjectInWorld(0);
  

+    bool is_file_protocol = protocol_script->Run()->BooleanValue();
+    use_node = is_file_protocol ? use_node : false;
+
+    // Transfer node's global symbols to webkit
+    if (use_node) {
+        // Don't use WebKit's timers in node
+        v8::Local<v8::Object> disableMap = v8::Object::New();
+        disableMap->Set(v8::String::New("setTimeout"), v8::Integer::New(1));

     }
     if ($interfaceName eq "HTMLDocument") {
diff --git a/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp b/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp
index e37b829..aeca32f 100644
--- a/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp
+++ b/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp
@@ -64,6 +64,11 @@
