|
|
7131f4d |
From 18e43f925d5d502b7531f40e4a1becba56089303 Mon Sep 17 00:00:00 2001
|
|
|
7131f4d |
From: "mstarzinger@chromium.org" <mstarzinger@chromium.org>
|
|
|
7131f4d |
Date: Mon, 15 Jul 2013 11:41:41 +0000
|
|
|
7131f4d |
Subject: [PATCH] Use internal array as API function cache.
|
|
|
7131f4d |
|
|
|
7131f4d |
R=yangguo@chromium.org
|
|
|
7131f4d |
BUG=chromium:260106
|
|
|
7131f4d |
TEST=cctest/test-api/Regress260106
|
|
|
7131f4d |
|
|
|
7131f4d |
Review URL: https://codereview.chromium.org/19159003
|
|
|
7131f4d |
|
|
|
7131f4d |
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
|
|
7131f4d |
---
|
|
|
7131f4d |
src/apinatives.js | 2 +-
|
|
|
7131f4d |
test/cctest/test-api.cc | 11 +++++++++++
|
|
|
7131f4d |
2 files changed, 12 insertions(+), 1 deletion(-)
|
|
|
7131f4d |
|
|
|
7131f4d |
diff --git a/src/apinatives.js b/src/apinatives.js
|
|
|
7131f4d |
index 79b41dd..adefab6 100644
|
|
|
7131f4d |
--- a/src/apinatives.js
|
|
|
7131f4d |
+++ b/src/apinatives.js
|
|
|
7131f4d |
@@ -37,7 +37,7 @@ function CreateDate(time) {
|
|
|
7131f4d |
}
|
|
|
7131f4d |
|
|
|
7131f4d |
|
|
|
7131f4d |
-var kApiFunctionCache = {};
|
|
|
7131f4d |
+var kApiFunctionCache = new InternalArray();
|
|
|
7131f4d |
var functionCache = kApiFunctionCache;
|
|
|
7131f4d |
|
|
|
7131f4d |
|
|
|
7131f4d |
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
|
|
7131f4d |
index 728a8f7..bcd28bd 100644
|
|
|
7131f4d |
--- a/test/cctest/test-api.cc
|
|
|
7131f4d |
+++ b/test/cctest/test-api.cc
|
|
|
7131f4d |
@@ -17707,6 +17707,17 @@ THREADED_TEST(Regress157124) {
|
|
|
7131f4d |
}
|
|
|
7131f4d |
|
|
|
7131f4d |
|
|
|
7131f4d |
+THREADED_TEST(Regress260106) {
|
|
|
7131f4d |
+ LocalContext context;
|
|
|
7131f4d |
+ v8::HandleScope scope(context->GetIsolate());
|
|
|
7131f4d |
+ Local<FunctionTemplate> templ = FunctionTemplate::New(DummyCallHandler);
|
|
|
7131f4d |
+ CompileRun("for (var i = 0; i < 128; i++) Object.prototype[i] = 0;");
|
|
|
7131f4d |
+ Local<Function> function = templ->GetFunction();
|
|
|
7131f4d |
+ CHECK(!function.IsEmpty());
|
|
|
7131f4d |
+ CHECK(function->IsFunction());
|
|
|
7131f4d |
+}
|
|
|
7131f4d |
+
|
|
|
7131f4d |
+
|
|
|
7131f4d |
#ifndef WIN32
|
|
|
7131f4d |
class ThreadInterruptTest {
|
|
|
7131f4d |
public:
|
|
|
7131f4d |
--
|
|
|
7131f4d |
1.8.3.1
|
|
|
7131f4d |
|