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

Side by Side Diff: tool/input_sdk/private/utils.dart

Issue 1580413002: Add a `@JSExportName` annotation for internal use in the runtime (use it to export dart.assert inst… (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Moved js exported name resolution down to _maybeQualifiedName (Renamed to _emitTopLevelName) Created 4 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart._utils; 5 library dart._utils;
6 6
7 import 'dart:_foreign_helper' show JS; 7 import 'dart:_foreign_helper' show JS, JSExportName;
8 8
9 /// This library defines a set of general javascript utilities for us 9 /// This library defines a set of general javascript utilities for us
10 /// by the Dart runtime. 10 /// by the Dart runtime.
11 // TODO(ochafik): Rewrite some of these in Dart when possible. 11 // TODO(ochafik): Rewrite some of these in Dart when possible.
12 12
13 final defineProperty = JS('', 'Object.defineProperty'); 13 final defineProperty = JS('', 'Object.defineProperty');
14 final getOwnPropertyDescriptor = JS('', 'Object.getOwnPropertyDescriptor'); 14 final getOwnPropertyDescriptor = JS('', 'Object.getOwnPropertyDescriptor');
15 final getOwnPropertyNames = JS('', 'Object.getOwnPropertyNames'); 15 final getOwnPropertyNames = JS('', 'Object.getOwnPropertyNames');
16 final getOwnPropertySymbols = JS('', 'Object.getOwnPropertySymbols'); 16 final getOwnPropertySymbols = JS('', 'Object.getOwnPropertySymbols');
17 17
(...skipping 14 matching lines...) Expand all
32 throw new StrongModeError($message); 32 throw new StrongModeError($message);
33 })()'''); 33 })()''');
34 34
35 /// This error indicates a bug in the runtime or the compiler. 35 /// This error indicates a bug in the runtime or the compiler.
36 void throwInternalError(String message) => JS('', '''(() => { 36 void throwInternalError(String message) => JS('', '''(() => {
37 throw Error($message); 37 throw Error($message);
38 })()'''); 38 })()''');
39 39
40 // TODO(ochafik): Re-introduce a @JS annotation in the SDK (same as package:js) 40 // TODO(ochafik): Re-introduce a @JS annotation in the SDK (same as package:js)
41 // so that this is named 'assert' in JavaScript. 41 // so that this is named 'assert' in JavaScript.
42 @JSExportName('assert')
42 void assert_(bool condition) => JS('', '''(() => { 43 void assert_(bool condition) => JS('', '''(() => {
43 if (!condition) throwInternalError("The compiler is broken: failed assert"); 44 if (!condition) throwInternalError("The compiler is broken: failed assert");
44 })()'''); 45 })()''');
45 46
46 getOwnNamesAndSymbols(obj) => JS('', '''(() => { 47 getOwnNamesAndSymbols(obj) => JS('', '''(() => {
47 return getOwnPropertyNames(obj).concat(getOwnPropertySymbols(obj)); 48 return getOwnPropertyNames(obj).concat(getOwnPropertySymbols(obj));
48 })()'''); 49 })()''');
49 50
50 safeGetOwnProperty(obj, String name) => JS('', '''(() => { 51 safeGetOwnProperty(obj, String name) => JS('', '''(() => {
51 let desc = getOwnPropertyDescriptor($obj, $name); 52 let desc = getOwnPropertyDescriptor($obj, $name);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 export_(to, from, show, hide) => JS('', '''(() => { 117 export_(to, from, show, hide) => JS('', '''(() => {
117 if ($show == void 0 || $show.length == 0) { 118 if ($show == void 0 || $show.length == 0) {
118 $show = $getOwnNamesAndSymbols($from); 119 $show = $getOwnNamesAndSymbols($from);
119 } 120 }
120 if ($hide != void 0) { 121 if ($hide != void 0) {
121 var hideMap = new Set($hide); 122 var hideMap = new Set($hide);
122 $show = $show.filter((k) => !hideMap.has(k)); 123 $show = $show.filter((k) => !hideMap.has(k));
123 } 124 }
124 return $copyTheseProperties($to, $from, $show); 125 return $copyTheseProperties($to, $from, $show);
125 })()'''); 126 })()''');
OLDNEW
« lib/src/codegen/js_codegen.dart ('K') | « tool/input_sdk/private/foreign_helper.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698