| Index: src/js/prologue.js
|
| diff --git a/src/js/prologue.js b/src/js/prologue.js
|
| index 03a842d6caa669c6b24ffa1c074fd71f879517e3..dfbba6bc14b5ce6b5e8ce695f501b521699bfeb7 100644
|
| --- a/src/js/prologue.js
|
| +++ b/src/js/prologue.js
|
| @@ -126,6 +126,18 @@ function InstallGetterSetter(object, name, getter, setter, attributes) {
|
| }
|
|
|
|
|
| +function OverrideFunction(object, name, f, afterInitialBootstrap) {
|
| + %CheckIsBootstrapping();
|
| + %ObjectDefineProperty(object, name, { value: f,
|
| + writeable: true,
|
| + configurable: true,
|
| + enumerable: false });
|
| + SetFunctionName(f, name);
|
| + if (!afterInitialBootstrap) %FunctionRemovePrototype(f);
|
| + %SetNativeFlag(f);
|
| +}
|
| +
|
| +
|
| // Prevents changes to the prototype of a built-in function.
|
| // The "prototype" property of the function object is made non-configurable,
|
| // and the prototype object is made non-extensible. The latter prevents
|
| @@ -187,6 +199,12 @@ function PostNatives(utils) {
|
| "PromiseChain",
|
| "PromiseDeferred",
|
| "PromiseResolved",
|
| + "RegExpSubclassExecJS",
|
| + "RegExpSubclassMatch",
|
| + "RegExpSubclassReplace",
|
| + "RegExpSubclassSearch",
|
| + "RegExpSubclassSplit",
|
| + "RegExpSubclassTest",
|
| "SetIterator",
|
| "SetIteratorNext",
|
| "SetValues",
|
| @@ -206,6 +224,10 @@ function PostNatives(utils) {
|
| "to_string_tag_symbol",
|
| "object_to_string",
|
| "species_symbol",
|
| + "match_symbol",
|
| + "replace_symbol",
|
| + "search_symbol",
|
| + "split_symbol",
|
| ];
|
|
|
| var filtered_exports = {};
|
| @@ -284,6 +306,7 @@ utils.InstallConstants = InstallConstants;
|
| utils.InstallFunctions = InstallFunctions;
|
| utils.InstallGetter = InstallGetter;
|
| utils.InstallGetterSetter = InstallGetterSetter;
|
| +utils.OverrideFunction = OverrideFunction;
|
| utils.SetUpLockedPrototype = SetUpLockedPrototype;
|
| utils.PostNatives = PostNatives;
|
| utils.PostExperimentals = PostExperimentals;
|
|
|