Commit c39a0a75 authored by yangguo's avatar yangguo Committed by Commit bot

Revert of Use function wrapper argument to expose internal arrays to native...

Revert of Use function wrapper argument to expose internal arrays to native scripts. (patchset #2 id:20001 of https://codereview.chromium.org/1127983003/)

Reason for revert:
custom snapshot builder failing.

Original issue's description:
> Use function wrapper argument to expose internal arrays to native scripts.
>
> R=jkummerow@chromium.org
>
> Committed: https://crrev.com/a9b5a1795449d94387218d25baed2c2b3c4fbadc
> Cr-Commit-Position: refs/heads/master@{#28354}

TBR=jkummerow@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1123353008

Cr-Commit-Position: refs/heads/master@{#28355}
parent a9b5a179
......@@ -19,12 +19,7 @@ var $innerArrayEvery;
%CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalArray = global.Array;
var InternalArray = exports.InternalArray;
var InternalPackedArray = exports.InternalPackedArray;
// -------------------------------------------------------------------
......
This diff is collapsed.
......@@ -185,8 +185,7 @@ enum BindingFlags {
V(MAP_ITERATOR_MAP_INDEX, Map, map_iterator_map) \
V(SET_ITERATOR_MAP_INDEX, Map, set_iterator_map) \
V(ARRAY_VALUES_ITERATOR_INDEX, JSFunction, array_values_iterator) \
V(SCRIPT_CONTEXT_TABLE_INDEX, ScriptContextTable, script_context_table) \
V(BUILTIN_EXPORTS_OBJECT_INDEX, Object, builtin_exports_object)
V(SCRIPT_CONTEXT_TABLE_INDEX, ScriptContextTable, script_context_table)
// A table of all script contexts. Every loaded top-level script with top-level
......@@ -423,7 +422,6 @@ class Context: public FixedArray {
SCRIPT_CONTEXT_TABLE_INDEX,
MAP_CACHE_INDEX,
TO_LENGTH_FUN_INDEX,
BUILTIN_EXPORTS_OBJECT_INDEX,
// Properties from here are treated as weak references by the full GC.
// Scavenge treats them as strong references.
......
......@@ -16,13 +16,7 @@ var $createDate;
%CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalDate = global.Date;
var InternalArray = shared.InternalArray;
// -------------------------------------------------------------------
// This file contains date support implemented in JavaScript.
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(function(global, exports) {
(function(global, shared, exports) {
'use strict';
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(function(global, exports) {
(function(global, shared, exports) {
'use strict';
......
......@@ -3,7 +3,7 @@
// found in the LICENSE file.
//
(function(global, exports) {
(function(global, shared, exports) {
"use strict";
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(function(global, exports) {
(function(global, shared, exports) {
'use strict';
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(function(global, exports) {
(function(global, shared, exports) {
'use strict';
......
......@@ -5,16 +5,10 @@
var $spreadArguments;
var $spreadIterable;
(function(global, exports) {
(function(global, shared, exports) {
'use strict';
// -------------------------------------------------------------------
// Imports
var InternalArray = exports.InternalArray;
// -------------------------------------------------------------------
function SpreadArguments() {
var count = %_ArgumentsLength();
var args = new InternalArray();
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(function(global, exports) {
(function(global, shared, exports) {
"use strict";
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(function(global, exports) {
(function(global, shared, exports) {
"use strict";
......
......@@ -10,11 +10,7 @@ var $jsonSerializeAdapter;
%CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalJSON = global.JSON;
var InternalArray = shared.InternalArray;
// -------------------------------------------------------------------
......
......@@ -16,11 +16,7 @@ var $min;
%CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalObject = global.Object;
var InternalArray = shared.InternalArray;
//-------------------------------------------------------------------
......
......@@ -35,14 +35,7 @@ var MakeTypeErrorEmbedded;
%CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalObject = global.Object;
var InternalArray = shared.InternalArray;
// -------------------------------------------------------------------
var GlobalError;
var GlobalTypeError;
var GlobalRangeError;
......@@ -51,6 +44,8 @@ var GlobalSyntaxError;
var GlobalReferenceError;
var GlobalEvalError;
// -------------------------------------------------------------------
var kMessages = {
// Error
constructor_is_generator: ["Class constructor may not be a generator"],
......
......@@ -16,12 +16,8 @@ var $observeNativeObjectNotifierPerformChange;
%CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalArray = global.Array;
var GlobalObject = global.Object;
var InternalArray = shared.InternalArray;
// -------------------------------------------------------------------
......
......@@ -1694,6 +1694,9 @@ class JSReceiver: public HeapObject {
// Forward declaration for JSObject::GetOrCreateHiddenPropertiesHashTable.
class ObjectHashTable;
// Forward declaration for JSObject::Copy.
class AllocationSite;
// The JSObject describes real heap allocated JavaScript objects with
// properties.
......@@ -2154,6 +2157,7 @@ class JSObject: public JSReceiver {
// Copy object.
enum DeepCopyHints { kNoHints = 0, kObjectIsShallow = 1 };
static Handle<JSObject> Copy(Handle<JSObject> object);
MUST_USE_RESULT static MaybeHandle<JSObject> DeepCopy(
Handle<JSObject> object,
AllocationSiteUsageContext* site_context,
......
......@@ -18,11 +18,6 @@ var $promiseValue;
%CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var InternalArray = shared.InternalArray;
// -------------------------------------------------------------------
// Status values: 0 = pending, +1 = resolved, -1 = rejected
......
......@@ -13,13 +13,7 @@ var harmony_unicode_regexps = false;
%CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalRegExp = global.RegExp;
var InternalPackedArray = shared.InternalPackedArray;
// -------------------------------------------------------------------
// Property of the builtins object for recording the result of the last
// regexp match. The property $regexpLastMatchInfo includes the matchIndices
......
......@@ -10,13 +10,8 @@ var $stringSubstring;
%CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalRegExp = global.RegExp;
var GlobalString = global.String;
var InternalArray = shared.InternalArray;
var InternalPackedArray = shared.InternalPackedArray;
//-------------------------------------------------------------------
......
......@@ -12,17 +12,9 @@ var $getTemplateCallSite;
%CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalMap = global.Map;
var InternalArray = shared.InternalArray;
// -------------------------------------------------------------------
var callSiteCache = new GlobalMap;
var mapGetFn = GlobalMap.prototype.get;
var mapSetFn = GlobalMap.prototype.set;
var callSiteCache = new global.Map;
var mapGetFn = global.Map.prototype.get;
var mapSetFn = global.Map.prototype.set;
function SameCallSiteElements(rawStrings, other) {
......
......@@ -11,12 +11,8 @@
%CheckIsBootstrapping();
//- ------------------------------------------------------------------
// Imports
var GlobalObject = global.Object;
var GlobalArray = global.Array;
var InternalArray = shared.InternalArray;
// -------------------------------------------------------------------
// Define internal helper functions.
......
......@@ -36,15 +36,11 @@ var $toNameArray;
%CheckIsBootstrapping();
// ----------------------------------------------------------------------------
// Imports
var GlobalArray = global.Array;
var GlobalBoolean = global.Boolean;
var GlobalFunction = global.Function;
var GlobalNumber = global.Number;
var GlobalObject = global.Object;
var InternalArray = shared.InternalArray;
// ----------------------------------------------------------------------------
......
......@@ -5430,56 +5430,3 @@ TEST(PreprocessStackTrace) {
CHECK(!element->IsCode());
}
}
static bool shared_has_been_collected = false;
static bool builtin_exports_has_been_collected = false;
static void SharedHasBeenCollected(
const v8::WeakCallbackInfo<v8::Persistent<v8::Object>>& data) {
shared_has_been_collected = true;
data.GetParameter()->Reset();
}
static void BuiltinExportsHasBeenCollected(
const v8::WeakCallbackInfo<v8::Persistent<v8::Object>>& data) {
builtin_exports_has_been_collected = true;
data.GetParameter()->Reset();
}
TEST(BootstrappingExports) {
FLAG_expose_natives_as = "natives";
CcTest::InitializeVM();
v8::Isolate* isolate = CcTest::isolate();
if (Snapshot::HaveASnapshotToStartFrom(CcTest::i_isolate())) return;
shared_has_been_collected = false;
builtin_exports_has_been_collected = false;
v8::Persistent<v8::Object> shared;
v8::Persistent<v8::Object> builtin_exports;
{
v8::HandleScope scope(isolate);
v8::Handle<v8::Object> natives =
CcTest::global()->Get(v8_str("natives"))->ToObject(isolate);
shared.Reset(isolate, natives->Get(v8_str("shared"))->ToObject(isolate));
natives->Delete(v8_str("shared"));
builtin_exports.Reset(
isolate, natives->Get(v8_str("builtin_exports"))->ToObject(isolate));
natives->Delete(v8_str("builtin_exports"));
}
shared.SetWeak(&shared, SharedHasBeenCollected,
v8::WeakCallbackType::kParameter);
builtin_exports.SetWeak(&builtin_exports, BuiltinExportsHasBeenCollected,
v8::WeakCallbackType::kParameter);
CcTest::heap()->CollectAllAvailableGarbage("fire weak callbacks");
CHECK(shared_has_been_collected);
CHECK(builtin_exports_has_been_collected);
}
......@@ -32,13 +32,13 @@
var a = Array();
for (var i = 0; i < 1000; i++) {
var ai = natives.shared.InternalArray(10000);
var ai = natives.InternalArray(10000);
assertFalse(%HaveSameMap(ai, a));
assertTrue(%HasFastObjectElements(ai));
}
for (var i = 0; i < 1000; i++) {
var ai = new natives.shared.InternalArray(10000);
var ai = new natives.InternalArray(10000);
assertFalse(%HaveSameMap(ai, a));
assertTrue(%HasFastObjectElements(ai));
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment