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

Unified Diff: lib/compiler/implementation/js_backend/emitter.dart

Issue 10915083: Change assert implementation to not depend on a top-level function called 'assert'. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address review comments. Created 8 years, 3 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: lib/compiler/implementation/js_backend/emitter.dart
diff --git a/lib/compiler/implementation/js_backend/emitter.dart b/lib/compiler/implementation/js_backend/emitter.dart
index 2bd01d4136b685df7d348fe7bffd17ed22be9fb9..4be2c83890fd8a4cd57c5e37dc3d93ebf2496d82 100644
--- a/lib/compiler/implementation/js_backend/emitter.dart
+++ b/lib/compiler/implementation/js_backend/emitter.dart
@@ -34,7 +34,6 @@ class CodeEmitterTask extends CompilerTask {
bool needsClosureClass = false;
bool needsLazyInitializer = false;
final Namer namer;
- ConstantEmitter constantEmitter;
NativeEmitter nativeEmitter;
CodeBuffer boundClosureBuffer;
CodeBuffer mainBuffer;
@@ -46,27 +45,16 @@ class CodeEmitterTask extends CompilerTask {
final bool generateSourceMap;
- CodeEmitterTask(Compiler compiler, Namer namer,
+ CodeEmitterTask(Compiler compiler, this.namer,
[bool generateSourceMap = false])
: boundClosureBuffer = new CodeBuffer(),
mainBuffer = new CodeBuffer(),
- this.namer = namer,
boundClosureCache = new Map<int, String>(),
generateSourceMap = generateSourceMap,
- constantEmitter = new ConstantEmitter(compiler, namer),
super(compiler) {
nativeEmitter = new NativeEmitter(this);
}
- void writeConstantToBuffer(Constant value, CodeBuffer buffer,
- [emitCanonicalVersion = true]) {
- if (emitCanonicalVersion) {
- constantEmitter.emitCanonicalVersionOfConstant(value, buffer);
- } else {
- constantEmitter.emitJavaScriptCodeForConstant(value, buffer);
- }
- }
-
String get name => 'CodeEmitter';
String get defineClassName
@@ -410,7 +398,7 @@ function(prototype, staticName, fieldName, getterName, lazyValue) {
// Note that [elements] may be null for a synthetized [member].
} else if (elements != null && elements.isParameterChecked(element)) {
CodeBuffer argumentBuffer = new CodeBuffer();
- writeConstantToBuffer(SentinelConstant.SENTINEL, argumentBuffer);
+ handler.writeConstant(argumentBuffer, SentinelConstant.SENTINEL);
argumentsBuffer[count] = argumentBuffer.toString();
} else {
Constant value = handler.initialVariableValues[element];
@@ -423,7 +411,7 @@ function(prototype, staticName, fieldName, getterName, lazyValue) {
indexOfLastOptionalArgumentInParameters = count;
}
CodeBuffer argumentBuffer = new CodeBuffer();
- writeConstantToBuffer(value, argumentBuffer);
+ handler.writeConstant(argumentBuffer, value);
argumentsBuffer[count] = argumentBuffer.toString();
}
}
@@ -934,8 +922,7 @@ $classesCollector.$mangledName = {'':
for (Element element in staticNonFinalFields) {
buffer.add('$isolateProperties.${namer.getName(element)} = ');
compiler.withCurrentElement(element, () {
- Constant initialValue = handler.getInitialValueFor(element);
- writeConstantToBuffer(initialValue, buffer);
+ handler.writeJsCodeForVariable(buffer, element);
});
buffer.add(';\n');
}
@@ -976,10 +963,7 @@ $classesCollector.$mangledName = {'':
List<Constant> constants = handler.getConstantsForEmission();
bool addedMakeConstantList = false;
for (Constant constant in constants) {
- // No need to emit functions. We already did that.
- if (constant.isFunction()) continue;
-
- String name = namer.constantName(constant);
+ String name = handler.getNameForConstant(constant);
// The name is null when the constant is already a JS constant.
// TODO(floitsch): every constant should be registered, so that we can
// share the ones that take up too much space (like some strings).
@@ -989,7 +973,7 @@ $classesCollector.$mangledName = {'':
emitMakeConstantList(buffer);
}
buffer.add('$isolateProperties.$name = ');
- writeConstantToBuffer(constant, buffer, emitCanonicalVersion: false);
+ handler.writeJsCode(buffer, constant);
buffer.add(';\n');
}
}
« no previous file with comments | « lib/compiler/implementation/js_backend/constant_emitter.dart ('k') | lib/compiler/implementation/js_backend/js_backend.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698