Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Unified Diff: lib/runtime/dart_sdk.js

Issue 1979863002: Dont install methods if implementation superclass corresponds to an installed extension class (Closed) Base URL: https://github.com/dart-lang/dev_compiler@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
Index: lib/runtime/dart_sdk.js
diff --git a/lib/runtime/dart_sdk.js b/lib/runtime/dart_sdk.js
index d040be4d3579775dc805a9510efb365f5f16a923..7455960aa5c512b8ecbe6fb65933a694be006610 100644
--- a/lib/runtime/dart_sdk.js
+++ b/lib/runtime/dart_sdk.js
@@ -200,8 +200,22 @@ dart_library.library('dart_sdk', null, /* Imports */[
dart.defineExtensionNames = function(names) {
return names.forEach(dart.getExtensionSymbol);
};
+ dart.tick1 = function() {
+ dart._t1 = dart._t1 + 1;
+ if (dart._t1 % 100 == 0) console.log([dart._t1, dart._t2]);
+ };
+ dart.tick2 = function() {
+ dart._t2 = dart._t2 + 1;
+ if (dart._t2 % 100 == 0) console.log([dart._t1, dart._t2]);
+ };
dart._installProperties = function(jsProto, extProto) {
+ dart.tick1();
let coreObjProto = core.Object.prototype;
+ dart._installProperties2(jsProto, extProto, coreObjProto);
+ jsProto._xxx = extProto;
+ };
+ dart._installProperties2 = function(jsProto, extProto, coreObjProto) {
+ dart.tick2();
if (extProto === coreObjProto) {
let names = dart.getOwnPropertyNames(coreObjProto);
for (let i = 0; i < names.length; ++i) {
@@ -212,7 +226,10 @@ dart_library.library('dart_sdk', null, /* Imports */[
return;
}
if (jsProto !== extProto) {
- dart._installProperties(jsProto, extProto.__proto__);
+ let extParent = extProto.__proto__;
+ if (jsProto.__proto__._xxx !== extParent) {
+ dart._installProperties2(jsProto, extParent, coreObjProto);
+ }
}
dart.copyTheseProperties(jsProto, extProto, dart.getOwnPropertySymbols(extProto));
};
@@ -998,6 +1015,8 @@ dart_library.library('dart_sdk', null, /* Imports */[
dart._staticSig = Symbol("sigStatic");
dart._extensionType = Symbol("extensionType");
dart.dartx = dartx;
+ dart._t1 = 0;
+ dart._t2 = 0;
dart._jsIterator = Symbol("_jsIterator");
dart._current = Symbol("_current");
dart._AsyncStarStreamController = class _AsyncStarStreamController {
« no previous file with comments | « no previous file | tool/input_sdk/private/ddc_runtime/classes.dart » ('j') | tool/input_sdk/private/ddc_runtime/classes.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698