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

Side by Side Diff: lib/runtime/_operations.js

Issue 1186683005: dart:mirrors (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Address comments Created 5 years, 6 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
« no previous file with comments | « no previous file | lib/runtime/dart/_js_mirrors.js » ('j') | tool/input_sdk/private/js_mirrors.dart » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 /* This library defines runtime operations on objects used by the code 5 /* This library defines runtime operations on objects used by the code
6 * generator. 6 * generator.
7 */ 7 */
8 dart_library.library('dart_runtime/_operations', null, /* Imports */[ 8 dart_library.library('dart_runtime/_operations', null, /* Imports */[
9 ], /* Lazy Imports */[ 9 ], /* Lazy Imports */[
10 'dart/async', 10 'dart/async',
11 'dart/collection',
11 'dart/core', 12 'dart/core',
13 'dart/_js_helper',
12 'dart_runtime/_classes', 14 'dart_runtime/_classes',
13 'dart_runtime/_errors', 15 'dart_runtime/_errors',
14 'dart_runtime/_rtti', 16 'dart_runtime/_rtti',
15 'dart_runtime/_types' 17 'dart_runtime/_types'
16 ], function(exports, async, core, classes, errors, rtti, types) { 18 ], function(exports, async, collection, core, _js_helper, classes, errors, rtti,
19 types) {
17 'use strict'; 20 'use strict';
18 21
19 const getOwnNamesAndSymbols = dart_utils.getOwnNamesAndSymbols; 22 const getOwnNamesAndSymbols = dart_utils.getOwnNamesAndSymbols;
20 const throwError = dart_utils.throwError; 23 const throwError = dart_utils.throwError;
21 24
22 const getOwnPropertyNames = Object.getOwnPropertyNames; 25 const getOwnPropertyNames = Object.getOwnPropertyNames;
23 const hasOwnProperty = Object.prototype.hasOwnProperty; 26 const hasOwnProperty = Object.prototype.hasOwnProperty;
24 27
25 const slice = [].slice; 28 const slice = [].slice;
26 29
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 throwNoSuchMethod(obj, name, args, f); 142 throwNoSuchMethod(obj, name, args, f);
140 } 143 }
141 144
142 function dcall(f/*, ...args*/) { 145 function dcall(f/*, ...args*/) {
143 let args = slice.call(arguments, 1); 146 let args = slice.call(arguments, 1);
144 let ftype = rtti.read(f); 147 let ftype = rtti.read(f);
145 return checkAndCall(f, ftype, void 0, args, 'call'); 148 return checkAndCall(f, ftype, void 0, args, 'call');
146 } 149 }
147 exports.dcall = dcall; 150 exports.dcall = dcall;
148 151
149
150 /** Shared code for dsend, dindex, and dsetindex. */ 152 /** Shared code for dsend, dindex, and dsetindex. */
151 function callMethod(obj, name, args, displayName) { 153 function callMethod(obj, name, args, displayName) {
152 let symbol = _canonicalFieldName(obj, name, args, displayName); 154 let symbol = _canonicalFieldName(obj, name, args, displayName);
153 let f = obj[symbol]; 155 let f = obj[symbol];
154 let ftype = classes.getMethodType(obj, name); 156 let ftype = classes.getMethodType(obj, name);
155 return checkAndCall(f, ftype, obj, args, displayName); 157 return checkAndCall(f, ftype, obj, args, displayName);
156 } 158 }
157 159
158 function dsend(obj, method/*, ...args*/) { 160 function dsend(obj, method/*, ...args*/) {
159 return callMethod(obj, method, slice.call(arguments, 2)); 161 return callMethod(obj, method, slice.call(arguments, 2));
160 } 162 }
161 exports.dsend = dsend; 163 exports.dsend = dsend;
162 164
165 function dsendArray(obj, method, args) {
166 return dsend(obj, method, ...args);
167 }
168 exports.dsendArray = dsendArray;
169
163 function dindex(obj, index) { 170 function dindex(obj, index) {
164 return callMethod(obj, 'get', [index], '[]'); 171 return callMethod(obj, 'get', [index], '[]');
165 } 172 }
166 exports.dindex = dindex; 173 exports.dindex = dindex;
167 174
168 function dsetindex(obj, index, value) { 175 function dsetindex(obj, index, value) {
169 return callMethod(obj, 'set', [index, value], '[]='); 176 return callMethod(obj, 'set', [index, value], '[]=');
170 } 177 }
171 exports.dsetindex = dsetindex; 178 exports.dsetindex = dsetindex;
172 179
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 next() { 394 next() {
388 let i = this.dartIterator; 395 let i = this.dartIterator;
389 let done = !i.moveNext(); 396 let done = !i.moveNext();
390 return { done: done, value: done ? void 0 : i.current }; 397 return { done: done, value: done ? void 0 : i.current };
391 } 398 }
392 } 399 }
393 exports.JsIterator = JsIterator; 400 exports.JsIterator = JsIterator;
394 401
395 402
396 }); 403 });
OLDNEW
« no previous file with comments | « no previous file | lib/runtime/dart/_js_mirrors.js » ('j') | tool/input_sdk/private/js_mirrors.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698