Index: extensions/renderer/module_system.cc |
diff --git a/extensions/renderer/module_system.cc b/extensions/renderer/module_system.cc |
index 1f337643476d06ad230eab1fb4949e61ec616a8f..f9e8d91df590065a82a31cf5725ab0aa320c1049 100644 |
--- a/extensions/renderer/module_system.cc |
+++ b/extensions/renderer/module_system.cc |
@@ -552,7 +552,11 @@ v8::Handle<v8::String> ModuleSystem::WrapSource(v8::Handle<v8::String> source) { |
"(function(define, require, requireNative, requireAsync, exports, " |
"console, privates," |
"$Array, $Function, $JSON, $Object, $RegExp, $String) {" |
- "'use strict';"); |
+ "'use strict';" |
+ // Prevent extensions from overriding the Error constructor. |
+ // Use window.Error instead of $Error to make sure that extensions can |
+ // still use "instanceof Error" for exception handling. |
+ "var Error = window.Error;"); |
v8::Handle<v8::String> right = v8::String::NewFromUtf8(GetIsolate(), "\n})"); |
return handle_scope.Escape(v8::Local<v8::String>( |
v8::String::Concat(left, v8::String::Concat(source, right)))); |