Index: src/js/harmony-regexp-exec.js |
diff --git a/src/js/harmony-regexp-exec.js b/src/js/harmony-regexp-exec.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e2eece98aa58be068543beef048b3d47f053f8ff |
--- /dev/null |
+++ b/src/js/harmony-regexp-exec.js |
@@ -0,0 +1,37 @@ |
+// Copyright 2012 the V8 project authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+(function(global, utils) { |
+ |
+%CheckIsBootstrapping(); |
+ |
+// ------------------------------------------------------------------- |
+// Imports |
+ |
+var GlobalRegExp = global.RegExp; |
+var RegExpSubclassExecJS = utils.ImportNow("RegExpSubclassExecJS"); |
+var RegExpSubclassMatch = utils.ImportNow("RegExpSubclassMatch"); |
+var RegExpSubclassReplace = utils.ImportNow("RegExpSubclassReplace"); |
+var RegExpSubclassSearch = utils.ImportNow("RegExpSubclassSearch"); |
+var RegExpSubclassSplit = utils.ImportNow("RegExpSubclassSplit"); |
+var RegExpSubclassTest = utils.ImportNow("RegExpSubclassTest"); |
+var matchSymbol = utils.ImportNow("match_symbol"); |
+var replaceSymbol = utils.ImportNow("replace_symbol"); |
+var searchSymbol = utils.ImportNow("search_symbol"); |
+var splitSymbol = utils.ImportNow("split_symbol"); |
+ |
+utils.OverrideFunction(GlobalRegExp.prototype, "exec", |
+ RegExpSubclassExecJS, true); |
+utils.OverrideFunction(GlobalRegExp.prototype, matchSymbol, |
+ RegExpSubclassMatch, true); |
+utils.OverrideFunction(GlobalRegExp.prototype, replaceSymbol, |
+ RegExpSubclassReplace, true); |
+utils.OverrideFunction(GlobalRegExp.prototype, searchSymbol, |
+ RegExpSubclassSearch, true); |
+utils.OverrideFunction(GlobalRegExp.prototype, splitSymbol, |
+ RegExpSubclassSplit, true); |
+utils.OverrideFunction(GlobalRegExp.prototype, "test", |
+ RegExpSubclassTest, true); |
+ |
+}) |