Index: src/js/prologue.js |
diff --git a/src/js/prologue.js b/src/js/prologue.js |
index e51ab558b6605e62d87b6be93ed9f34122f30e8b..df7370c33ed69fdfef593fb3864902d08267d68f 100644 |
--- a/src/js/prologue.js |
+++ b/src/js/prologue.js |
@@ -15,6 +15,11 @@ var imports = UNDEFINED; |
var imports_from_experimental = UNDEFINED; |
var exports_container = %ExportFromRuntime({}); |
var typed_array_setup = UNDEFINED; |
+var InstallExperimentalArrayFunctions; |
+ |
+Import(function(from) { |
+ InstallExperimentalArrayFunctions = from.InstallExperimentalArrayFunctions; |
+}); |
// Register context value to be initialized with a typed array in |
// Genesis::InitializeBuiltinTypedArrays. |
@@ -86,14 +91,17 @@ function InstallConstants(object, constants) { |
} |
-function InstallFunctions(object, attributes, functions) { |
+ function InstallFunctions(object, attributes, functions, |
+ remove_prototype = true) { |
%CheckIsBootstrapping(); |
%OptimizeObjectForAddingMultipleProperties(object, functions.length >> 1); |
for (var i = 0; i < functions.length; i += 2) { |
var key = functions[i]; |
var f = functions[i + 1]; |
SetFunctionName(f, key); |
- %FunctionRemovePrototype(f); |
+ if (remove_prototype) { |
+ %FunctionRemovePrototype(f); |
+ } |
%AddNamedProperty(object, key, f, attributes); |
%SetNativeFlag(f); |
} |
@@ -200,7 +208,6 @@ function PostNatives(utils) { |
utils.ImportFromExperimental = UNDEFINED; |
} |
- |
function PostExperimentals(utils) { |
%CheckIsBootstrapping(); |
%ExportExperimentalFromRuntime(exports_container); |
@@ -216,6 +223,8 @@ function PostExperimentals(utils) { |
utils.PostDebug = UNDEFINED; |
utils.PostExperimentals = UNDEFINED; |
typed_array_setup = UNDEFINED; |
+ |
+ InstallExperimentalArrayFunctions(); |
} |