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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/js_emitter/old_emitter/declarations.dart

Issue 694353007: Move dart2js from sdk/lib/_internal/compiler to pkg/compiler (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 part of dart2js.js_emitter;
6
7 /// Enables debugging of fast/slow objects using V8-specific primitives.
8 const DEBUG_FAST_OBJECTS = false;
9
10 /**
11 * Call-back for adding stub [function] for [selector].
12 */
13 typedef void AddStubFunction(Selector selector, jsAst.Fun function);
14
15 /**
16 * Call-back for adding property with [name] and [value].
17 */
18 typedef jsAst.Property AddPropertyFunction(String name, jsAst.Expression value);
19
20 /**
21 * [member] is a field (instance, static, or top level).
22 *
23 * [name] is the field name that the [Namer] has picked for this field's
24 * storage, that is, the JavaScript property name.
25 *
26 * [accessorName] is the name of the accessor. For instance fields this is
27 * mostly the same as [name] except when [member] is shadowing a field in its
28 * superclass. For other fields, they are rarely the same.
29 *
30 * [needsGetter] and [needsSetter] represent if a getter or a setter
31 * respectively is needed. There are many factors in this, for example, if the
32 * accessor can be inlined.
33 *
34 * [needsCheckedSetter] indicates that a checked getter is needed, and in this
35 * case, [needsSetter] is always false. [needsCheckedSetter] is only true when
36 * type assertions are enabled (checked mode).
37 */
38 typedef void AcceptField(VariableElement member,
39 String name,
40 String accessorName,
41 bool needsGetter,
42 bool needsSetter,
43 bool needsCheckedSetter);
44
45 // Function signatures used in the generation of runtime type information.
46 typedef void FunctionTypeSignatureEmitter(Element method,
47 FunctionType methodType);
48
49 typedef void SubstitutionEmitter(Element element, {bool emitNull});
50
51 const String GENERATED_BY = """
52 // Generated by dart2js, the Dart to JavaScript compiler.
53 """;
54
55 const String HOOKS_API_USAGE = """
56 // The code supports the following hooks:
57 // dartPrint(message):
58 // if this function is defined it is called instead of the Dart [print]
59 // method.
60 //
61 // dartMainRunner(main, args):
62 // if this function is defined, the Dart [main] method will not be invoked
63 // directly. Instead, a closure that will invoke [main], and its arguments
64 // [args] is passed to [dartMainRunner].
65 """;
66
67 // Compact field specifications. The format of the field specification is
68 // <accessorName>:<fieldName><suffix> where the suffix and accessor name
69 // prefix are optional. The suffix directs the generation of getter and
70 // setter methods. Each of the getter and setter has two bits to determine
71 // the calling convention. Setter listed below, getter is similar.
72 //
73 // 00: no setter
74 // 01: function(value) { this.field = value; }
75 // 10: function(receiver, value) { receiver.field = value; }
76 // 11: function(receiver, value) { this.field = value; }
77 //
78 // The suffix encodes 4 bits using three ASCII ranges of non-identifier
79 // characters.
80 const FIELD_CODE_CHARACTERS = r"<=>?@{|}~%&'()*";
81 const NO_FIELD_CODE = 0;
82 const FIRST_FIELD_CODE = 1;
83 const RANGE1_FIRST = 0x3c; // <=>?@ encodes 1..5
84 const RANGE1_LAST = 0x40;
85 const RANGE2_FIRST = 0x7b; // {|}~ encodes 6..9
86 const RANGE2_LAST = 0x7e;
87 const RANGE3_FIRST = 0x25; // %&'()*+ encodes 10..16
88 const RANGE3_LAST = 0x2b;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698