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

Unified Diff: pkg/compiler/lib/src/native/behavior.dart

Issue 1091613003: Revert "dart2js: add compiler builtins to the core-runtime." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 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/native/behavior.dart
diff --git a/pkg/compiler/lib/src/native/behavior.dart b/pkg/compiler/lib/src/native/behavior.dart
index 7088f103a192c13dd66c167ecafc4a17d16a9909..63754a3b4df467170343f0bc177c877bdd528b6a 100644
--- a/pkg/compiler/lib/src/native/behavior.dart
+++ b/pkg/compiler/lib/src/native/behavior.dart
@@ -511,40 +511,30 @@ class NativeBehavior {
return behavior;
}
- static void _fillNativeBehaviorOfBuiltinOrEmbeddedGlobal(
- NativeBehavior behavior,
- Send jsBuiltinOrEmbeddedGlobalCall,
- Compiler compiler,
- ResolverVisitor resolver,
- {bool isBuiltin,
- List<String> validTags}) {
+ static NativeBehavior ofJsEmbeddedGlobalCall(Send jsGlobalCall,
+ Compiler compiler,
+ resolver) {
// The first argument of a JS-embedded global call is a string encoding
// the type of the code.
//
// 'Type1|Type2'. A union type.
// '=Object'. A JavaScript Object, no subtype.
- String builtinOrGlobal = isBuiltin ? "builtin" : "embedded global";
-
- Link<Node> argNodes = jsBuiltinOrEmbeddedGlobalCall.arguments;
+ Link<Node> argNodes = jsGlobalCall.arguments;
if (argNodes.isEmpty) {
- compiler.internalError(jsBuiltinOrEmbeddedGlobalCall,
- "JS $builtinOrGlobal expression has no type.");
+ compiler.internalError(jsGlobalCall,
+ "JS embedded global expression has no type.");
}
// We don't check the given name. That needs to be done at a later point.
- // This is, because we want to allow non-literals (like references to
- // enums) as names.
+ // This is, because we want to allow non-literals as names.
if (argNodes.tail.isEmpty) {
- compiler.internalError(jsBuiltinOrEmbeddedGlobalCall,
- 'JS $builtinOrGlobal is missing name.');
+ compiler.internalError(jsGlobalCall, 'Embedded Global is missing name.');
}
- if (!isBuiltin) {
- if (!argNodes.tail.tail.isEmpty) {
- compiler.internalError(argNodes.tail.tail.head,
- 'JS embedded global has more than 2 arguments');
- }
+ if (!argNodes.tail.tail.isEmpty) {
+ compiler.internalError(argNodes.tail.tail.head,
+ 'Embedded Global has more than 2 arguments');
}
LiteralString specLiteral = argNodes.head.asLiteralString();
@@ -554,6 +544,8 @@ class NativeBehavior {
compiler.internalError(argNodes.head, "Unexpected first argument.");
}
+ NativeBehavior behavior = new NativeBehavior();
+
String specString = specLiteral.dartString.slowToString();
dynamic resolveType(String typeString) {
@@ -561,51 +553,25 @@ class NativeBehavior {
typeString,
compiler,
(name) => resolver.resolveTypeFromString(specLiteral, name),
- jsBuiltinOrEmbeddedGlobalCall);
- }
-
- void setSideEffects(SideEffects newEffects) {
- behavior.sideEffects.setTo(newEffects);
+ jsGlobalCall);
}
- processSpecString(compiler, jsBuiltinOrEmbeddedGlobalCall,
+ processSpecString(compiler, jsGlobalCall,
specString,
- validTags: validTags,
+ validTags: const ['returns', 'creates'],
resolveType: resolveType,
- setSideEffects: setSideEffects,
typesReturned: behavior.typesReturned,
typesInstantiated: behavior.typesInstantiated,
objectType: compiler.objectClass.computeType(compiler),
nullType: compiler.nullClass.computeType(compiler));
- }
-
- static NativeBehavior ofJsBuiltinCall(Send jsBuiltinCall,
- Compiler compiler,
- ResolverVisitor resolver) {
- NativeBehavior behavior = new NativeBehavior();
- behavior.sideEffects.setTo(new SideEffects());
- _fillNativeBehaviorOfBuiltinOrEmbeddedGlobal(
- behavior, jsBuiltinCall, compiler, resolver, isBuiltin: true);
-
- return behavior;
- }
-
- static NativeBehavior ofJsEmbeddedGlobalCall(Send jsEmbeddedGlobalCall,
- Compiler compiler,
- ResolverVisitor resolver) {
- NativeBehavior behavior = new NativeBehavior();
- // TODO(sra): Allow the use site to override these defaults.
// Embedded globals are usually pre-computed data structures or JavaScript
// functions that never change.
- behavior.sideEffects.setTo(new SideEffects.empty());
+ // TODO(sra): Allow the use site to override these defaults.
+ behavior.sideEffects.clearAllDependencies();
+ behavior.sideEffects.clearAllSideEffects();
behavior.throwBehavior = NativeThrowBehavior.NEVER;
- _fillNativeBehaviorOfBuiltinOrEmbeddedGlobal(
- behavior, jsEmbeddedGlobalCall, compiler, resolver,
- isBuiltin: false,
- validTags: const ['returns', 'creates']);
-
return behavior;
}
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/old_emitter/setup_program_builder.dart ('k') | pkg/compiler/lib/src/native/enqueue.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698