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

Unified Diff: pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/classes.dart

Issue 3002393002: optimize extension member symbols in DDC, issue #30531 (Closed)
Patch Set: small tweak Created 3 years, 4 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:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/dev_compiler/lib/src/compiler/code_generator.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/classes.dart
diff --git a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/classes.dart b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/classes.dart
index d93901a54171f71e714a5bf55d49942ca438abbc..e21b453317785b6ff5bd721c4a805fb5cd4d4a8b 100644
--- a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/classes.dart
+++ b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/classes.dart
@@ -391,18 +391,6 @@ getExtensionType(obj) => JS('', '#[#]', obj, _extensionType);
final dartx = JS('', 'dartx');
-getExtensionSymbol(name) {
- var sym = JS('', 'dartx[#]', name);
- if (sym == null) {
- sym = JS('', 'Symbol("dartx." + #.toString())', name);
- JS('', 'dartx[#] = #', name, sym);
- }
- return sym;
-}
-
-defineExtensionNames(names) =>
- JS('', '#.forEach(#)', names, getExtensionSymbol);
-
/// Install properties in prototype-first order. Properties / descriptors from
/// more specific types should overwrite ones from less specific types.
void _installProperties(jsProto, dartType, installedParent) {
@@ -429,7 +417,7 @@ void _installPropertiesForObject(jsProto) {
for (int i = 0; i < JS('int', '#.length', names); ++i) {
var name = JS('', '#[#]', names, i);
var desc = getOwnPropertyDescriptor(coreObjProto, name);
- defineProperty(jsProto, getExtensionSymbol(name), desc);
+ defineProperty(jsProto, JS('', '#.#', dartx, name), desc);
}
}
@@ -501,7 +489,7 @@ defineExtensionMembers(type, methodNames) => JS('', '''(() => {
let proto = $type.prototype;
for (let name of $methodNames) {
let method = $getOwnPropertyDescriptor(proto, name);
- $defineProperty(proto, $getExtensionSymbol(name), method);
+ $defineProperty(proto, $dartx[name], method);
}
// Ensure the signature is available too.
// TODO(jmesserly): not sure if we can do this in a cleaner way. Essentially
@@ -519,7 +507,7 @@ defineExtensionMembers(type, methodNames) => JS('', '''(() => {
let propertyNames = Object.getOwnPropertyNames(sig);
for (let name of methodNames) {
if (name in sig) {
- sig[$getExtensionSymbol(name)] = sig[name];
+ sig[$dartx[name]] = sig[name];
}
}
return sig;
« no previous file with comments | « pkg/dev_compiler/lib/src/compiler/code_generator.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698