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; ...@@ -19,12 +19,7 @@ var $innerArrayEvery;
%CheckIsBootstrapping(); %CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalArray = global.Array; var GlobalArray = global.Array;
var InternalArray = exports.InternalArray;
var InternalPackedArray = exports.InternalPackedArray;
// ------------------------------------------------------------------- // -------------------------------------------------------------------
......
This diff is collapsed.
...@@ -185,8 +185,7 @@ enum BindingFlags { ...@@ -185,8 +185,7 @@ enum BindingFlags {
V(MAP_ITERATOR_MAP_INDEX, Map, map_iterator_map) \ V(MAP_ITERATOR_MAP_INDEX, Map, map_iterator_map) \
V(SET_ITERATOR_MAP_INDEX, Map, set_iterator_map) \ V(SET_ITERATOR_MAP_INDEX, Map, set_iterator_map) \
V(ARRAY_VALUES_ITERATOR_INDEX, JSFunction, array_values_iterator) \ V(ARRAY_VALUES_ITERATOR_INDEX, JSFunction, array_values_iterator) \
V(SCRIPT_CONTEXT_TABLE_INDEX, ScriptContextTable, script_context_table) \ V(SCRIPT_CONTEXT_TABLE_INDEX, ScriptContextTable, script_context_table)
V(BUILTIN_EXPORTS_OBJECT_INDEX, Object, builtin_exports_object)
// A table of all script contexts. Every loaded top-level script with top-level // A table of all script contexts. Every loaded top-level script with top-level
...@@ -423,7 +422,6 @@ class Context: public FixedArray { ...@@ -423,7 +422,6 @@ class Context: public FixedArray {
SCRIPT_CONTEXT_TABLE_INDEX, SCRIPT_CONTEXT_TABLE_INDEX,
MAP_CACHE_INDEX, MAP_CACHE_INDEX,
TO_LENGTH_FUN_INDEX, TO_LENGTH_FUN_INDEX,
BUILTIN_EXPORTS_OBJECT_INDEX,
// Properties from here are treated as weak references by the full GC. // Properties from here are treated as weak references by the full GC.
// Scavenge treats them as strong references. // Scavenge treats them as strong references.
......
...@@ -16,13 +16,7 @@ var $createDate; ...@@ -16,13 +16,7 @@ var $createDate;
%CheckIsBootstrapping(); %CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalDate = global.Date; var GlobalDate = global.Date;
var InternalArray = shared.InternalArray;
// -------------------------------------------------------------------
// This file contains date support implemented in JavaScript. // This file contains date support implemented in JavaScript.
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
(function(global, exports) { (function(global, shared, exports) {
'use strict'; 'use strict';
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
(function(global, exports) { (function(global, shared, exports) {
'use strict'; 'use strict';
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
// found in the LICENSE file. // found in the LICENSE file.
// //
(function(global, exports) { (function(global, shared, exports) {
"use strict"; "use strict";
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
(function(global, exports) { (function(global, shared, exports) {
'use strict'; 'use strict';
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
(function(global, exports) { (function(global, shared, exports) {
'use strict'; 'use strict';
......
...@@ -5,16 +5,10 @@ ...@@ -5,16 +5,10 @@
var $spreadArguments; var $spreadArguments;
var $spreadIterable; var $spreadIterable;
(function(global, exports) { (function(global, shared, exports) {
'use strict'; 'use strict';
// -------------------------------------------------------------------
// Imports
var InternalArray = exports.InternalArray;
// -------------------------------------------------------------------
function SpreadArguments() { function SpreadArguments() {
var count = %_ArgumentsLength(); var count = %_ArgumentsLength();
var args = new InternalArray(); var args = new InternalArray();
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
(function(global, exports) { (function(global, shared, exports) {
"use strict"; "use strict";
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
(function(global, exports) { (function(global, shared, exports) {
"use strict"; "use strict";
......
...@@ -10,11 +10,7 @@ var $jsonSerializeAdapter; ...@@ -10,11 +10,7 @@ var $jsonSerializeAdapter;
%CheckIsBootstrapping(); %CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalJSON = global.JSON; var GlobalJSON = global.JSON;
var InternalArray = shared.InternalArray;
// ------------------------------------------------------------------- // -------------------------------------------------------------------
......
...@@ -16,11 +16,7 @@ var $min; ...@@ -16,11 +16,7 @@ var $min;
%CheckIsBootstrapping(); %CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalObject = global.Object; var GlobalObject = global.Object;
var InternalArray = shared.InternalArray;
//------------------------------------------------------------------- //-------------------------------------------------------------------
......
...@@ -35,14 +35,7 @@ var MakeTypeErrorEmbedded; ...@@ -35,14 +35,7 @@ var MakeTypeErrorEmbedded;
%CheckIsBootstrapping(); %CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalObject = global.Object; var GlobalObject = global.Object;
var InternalArray = shared.InternalArray;
// -------------------------------------------------------------------
var GlobalError; var GlobalError;
var GlobalTypeError; var GlobalTypeError;
var GlobalRangeError; var GlobalRangeError;
...@@ -51,6 +44,8 @@ var GlobalSyntaxError; ...@@ -51,6 +44,8 @@ var GlobalSyntaxError;
var GlobalReferenceError; var GlobalReferenceError;
var GlobalEvalError; var GlobalEvalError;
// -------------------------------------------------------------------
var kMessages = { var kMessages = {
// Error // Error
constructor_is_generator: ["Class constructor may not be a generator"], constructor_is_generator: ["Class constructor may not be a generator"],
......
...@@ -16,12 +16,8 @@ var $observeNativeObjectNotifierPerformChange; ...@@ -16,12 +16,8 @@ var $observeNativeObjectNotifierPerformChange;
%CheckIsBootstrapping(); %CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalArray = global.Array; var GlobalArray = global.Array;
var GlobalObject = global.Object; var GlobalObject = global.Object;
var InternalArray = shared.InternalArray;
// ------------------------------------------------------------------- // -------------------------------------------------------------------
......
...@@ -1694,6 +1694,9 @@ class JSReceiver: public HeapObject { ...@@ -1694,6 +1694,9 @@ class JSReceiver: public HeapObject {
// Forward declaration for JSObject::GetOrCreateHiddenPropertiesHashTable. // Forward declaration for JSObject::GetOrCreateHiddenPropertiesHashTable.
class ObjectHashTable; class ObjectHashTable;
// Forward declaration for JSObject::Copy.
class AllocationSite;
// The JSObject describes real heap allocated JavaScript objects with // The JSObject describes real heap allocated JavaScript objects with
// properties. // properties.
...@@ -2154,6 +2157,7 @@ class JSObject: public JSReceiver { ...@@ -2154,6 +2157,7 @@ class JSObject: public JSReceiver {
// Copy object. // Copy object.
enum DeepCopyHints { kNoHints = 0, kObjectIsShallow = 1 }; enum DeepCopyHints { kNoHints = 0, kObjectIsShallow = 1 };
static Handle<JSObject> Copy(Handle<JSObject> object);
MUST_USE_RESULT static MaybeHandle<JSObject> DeepCopy( MUST_USE_RESULT static MaybeHandle<JSObject> DeepCopy(
Handle<JSObject> object, Handle<JSObject> object,
AllocationSiteUsageContext* site_context, AllocationSiteUsageContext* site_context,
......
...@@ -18,11 +18,6 @@ var $promiseValue; ...@@ -18,11 +18,6 @@ var $promiseValue;
%CheckIsBootstrapping(); %CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var InternalArray = shared.InternalArray;
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Status values: 0 = pending, +1 = resolved, -1 = rejected // Status values: 0 = pending, +1 = resolved, -1 = rejected
......
...@@ -13,13 +13,7 @@ var harmony_unicode_regexps = false; ...@@ -13,13 +13,7 @@ var harmony_unicode_regexps = false;
%CheckIsBootstrapping(); %CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalRegExp = global.RegExp; var GlobalRegExp = global.RegExp;
var InternalPackedArray = shared.InternalPackedArray;
// -------------------------------------------------------------------
// Property of the builtins object for recording the result of the last // Property of the builtins object for recording the result of the last
// regexp match. The property $regexpLastMatchInfo includes the matchIndices // regexp match. The property $regexpLastMatchInfo includes the matchIndices
......
...@@ -10,13 +10,8 @@ var $stringSubstring; ...@@ -10,13 +10,8 @@ var $stringSubstring;
%CheckIsBootstrapping(); %CheckIsBootstrapping();
// -------------------------------------------------------------------
// Imports
var GlobalRegExp = global.RegExp; var GlobalRegExp = global.RegExp;
var GlobalString = global.String; var GlobalString = global.String;
var InternalArray = shared.InternalArray;
var InternalPackedArray = shared.InternalPackedArray;
//------------------------------------------------------------------- //-------------------------------------------------------------------
......
...@@ -12,17 +12,9 @@ var $getTemplateCallSite; ...@@ -12,17 +12,9 @@ var $getTemplateCallSite;
%CheckIsBootstrapping(); %CheckIsBootstrapping();
// ------------------------------------------------------------------- var callSiteCache = new global.Map;
// Imports var mapGetFn = global.Map.prototype.get;
var mapSetFn = global.Map.prototype.set;
var GlobalMap = global.Map;
var InternalArray = shared.InternalArray;
// -------------------------------------------------------------------
var callSiteCache = new GlobalMap;
var mapGetFn = GlobalMap.prototype.get;
var mapSetFn = GlobalMap.prototype.set;
function SameCallSiteElements(rawStrings, other) { function SameCallSiteElements(rawStrings, other) {
......
...@@ -11,12 +11,8 @@ ...@@ -11,12 +11,8 @@
%CheckIsBootstrapping(); %CheckIsBootstrapping();
//- ------------------------------------------------------------------
// Imports
var GlobalObject = global.Object; var GlobalObject = global.Object;
var GlobalArray = global.Array; var GlobalArray = global.Array;
var InternalArray = shared.InternalArray;
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Define internal helper functions. // Define internal helper functions.
......
...@@ -36,15 +36,11 @@ var $toNameArray; ...@@ -36,15 +36,11 @@ var $toNameArray;
%CheckIsBootstrapping(); %CheckIsBootstrapping();
// ----------------------------------------------------------------------------
// Imports
var GlobalArray = global.Array; var GlobalArray = global.Array;
var GlobalBoolean = global.Boolean; var GlobalBoolean = global.Boolean;
var GlobalFunction = global.Function; var GlobalFunction = global.Function;
var GlobalNumber = global.Number; var GlobalNumber = global.Number;
var GlobalObject = global.Object; var GlobalObject = global.Object;
var InternalArray = shared.InternalArray;
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
......
...@@ -5430,56 +5430,3 @@ TEST(PreprocessStackTrace) { ...@@ -5430,56 +5430,3 @@ TEST(PreprocessStackTrace) {
CHECK(!element->IsCode()); 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 @@ ...@@ -32,13 +32,13 @@
var a = Array(); var a = Array();
for (var i = 0; i < 1000; i++) { for (var i = 0; i < 1000; i++) {
var ai = natives.shared.InternalArray(10000); var ai = natives.InternalArray(10000);
assertFalse(%HaveSameMap(ai, a)); assertFalse(%HaveSameMap(ai, a));
assertTrue(%HasFastObjectElements(ai)); assertTrue(%HasFastObjectElements(ai));
} }
for (var i = 0; i < 1000; i++) { for (var i = 0; i < 1000; i++) {
var ai = new natives.shared.InternalArray(10000); var ai = new natives.InternalArray(10000);
assertFalse(%HaveSameMap(ai, a)); assertFalse(%HaveSameMap(ai, a));
assertTrue(%HasFastObjectElements(ai)); 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