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

Unified Diff: pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart

Issue 1408043002: Move native and js interop properties from the element model to the JS backend (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 5 years, 2 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
Index: pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart b/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
index 01d3f3846b537d93960ebf69a5648c39cb24dff9..f3862be3d23ef68e452fb1ffaa6b33d0ecda18b0 100644
--- a/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
+++ b/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
@@ -369,7 +369,7 @@ class ProgramBuilder {
var stubNames = new Set<String>();
librariesMap.forEach((LibraryElement library, List<Element> elements) {
for (Element e in elements) {
- if (e is ClassElement && e.isJsInterop) {
+ if (e is ClassElement && backend.isJsInterop(e)) {
e.declaration.forEachMember((_, Element member) {
if (!member.isInstanceMember) return;
if (member.isGetter || member.isField || member.isFunction) {
@@ -481,12 +481,12 @@ class ProgramBuilder {
element, name, null, [], instanceFields, [], [], [], [], [], [], null,
isDirectlyInstantiated: true,
onlyForRti: false,
- isNative: element.isNative);
+ isNative: backend.isNative(element));
}
Class _buildClass(ClassElement element) {
bool onlyForRti = collector.classesOnlyNeededForRti.contains(element);
- if (element.isJsInterop) {
+ if (backend.isJsInterop(element)) {
// TODO(jacobr): check whether the class has any active static fields
// if it does not we can suppress it completely.
onlyForRti = true;
@@ -572,7 +572,7 @@ class ProgramBuilder {
List<StubMethod> checkedSetters = <StubMethod>[];
List<StubMethod> isChecks = <StubMethod>[];
- if (element.isJsInterop) {
+ if (backend.isJsInterop(element)) {
typeTests.properties.forEach((js.Name name, js.Node code) {
_classes[backend.jsInterceptorClass].isChecks.add(
_buildStubMethod(name, code));
@@ -599,12 +599,12 @@ class ProgramBuilder {
// TODO(floitsch): we shouldn't update the registry in the middle of
// building a class.
Holder holder = _registry.registerHolder(holderName);
- bool isInstantiated = !element.isJsInterop &&
+ bool isInstantiated = !backend.isJsInterop(element) &&
_compiler.codegenWorld.directlyInstantiatedClasses.contains(element);
Class result;
if (element.isMixinApplication && !onlyForRti) {
- assert(!element.isNative);
+ assert(!backend.isNative(element));
assert(methods.isEmpty);
result = new MixinApplication(element,
@@ -630,7 +630,7 @@ class ProgramBuilder {
typeTests.functionTypeIndex,
isDirectlyInstantiated: isInstantiated,
onlyForRti: onlyForRti,
- isNative: element.isNative);
+ isNative: backend.isNative(element));
}
_classes[element] = result;
return result;

Powered by Google App Engine
This is Rietveld 408576698