Reviewers: Mads Ager, Message: Hold for benchmark results.
Description: Stop using plain Arrays internally in built-in functions. In built-in code we use arrays for internal computations. This makes it possible to affect the built-in code by putting getters or setters on the Array prototype chain. This adds a new internal Array constructor that creates Arrays with a very simplistic prototype chain that doesn't include any publicly visible objects. These Arrays shoudl ofcourse never leak outside the builtins, since that would expose the prototype object. The prototype object contains only the array functions that we use: push, pop and join (and not even a toString, so it doesn't stringify well). Also change uses of .call to %_CallFunction. BUG=1206 Please review this at http://codereview.chromium.org/6602081/ SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge Affected files: M src/arm/builtins-arm.cc M src/array.js M src/bootstrapper.cc M src/ia32/builtins-ia32.cc M src/json.js M src/objects.cc M src/regexp.js M src/string.js M src/v8natives.js M src/x64/builtins-x64.cc M src/x64/macro-assembler-x64.cc -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
