| OLD | NEW |
| 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 var dart, _js_helper; | 5 var dart, _js_helper; |
| 6 (function (dart) { | 6 (function (dart) { |
| 7 'use strict'; | 7 'use strict'; |
| 8 | 8 |
| 9 let defineProperty = Object.defineProperty; | 9 let defineProperty = Object.defineProperty; |
| 10 let getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; | 10 let getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; |
| 11 let getOwnPropertyNames = Object.getOwnPropertyNames; | 11 let getOwnPropertyNames = Object.getOwnPropertyNames; |
| 12 let getOwnPropertySymbols = Object.getOwnPropertySymbols; |
| 12 | 13 |
| 13 // Adapted from Angular.js | 14 // Adapted from Angular.js |
| 14 let FN_ARGS = /^function\s*[^\(]*\(\s*([^\)]*)\)/m; | 15 let FN_ARGS = /^function\s*[^\(]*\(\s*([^\)]*)\)/m; |
| 15 let FN_ARG_SPLIT = /,/; | 16 let FN_ARG_SPLIT = /,/; |
| 16 let FN_ARG = /^\s*(_?)(\S+?)\1\s*$/; | 17 let FN_ARG = /^\s*(_?)(\S+?)\1\s*$/; |
| 17 let STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg; | 18 let STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg; |
| 18 | 19 |
| 19 function formalParameterList(fn) { | 20 function formalParameterList(fn) { |
| 20 let fnText,argDecl; | 21 let fnText,argDecl; |
| 21 let args=[]; | 22 let args=[]; |
| (...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 607 // TODO(jmesserly): these are identical, but this makes it easier to grep for. | 608 // TODO(jmesserly): these are identical, but this makes it easier to grep for. |
| 608 dart.defineLazyClass = defineLazy; | 609 dart.defineLazyClass = defineLazy; |
| 609 dart.defineLazyProperties = defineLazy; | 610 dart.defineLazyProperties = defineLazy; |
| 610 dart.defineLazyClassGeneric = defineLazyProperty; | 611 dart.defineLazyClassGeneric = defineLazyProperty; |
| 611 | 612 |
| 612 /** | 613 /** |
| 613 * Copy properties from source to destination object. | 614 * Copy properties from source to destination object. |
| 614 * This operation is commonly called `mixin` in JS. | 615 * This operation is commonly called `mixin` in JS. |
| 615 */ | 616 */ |
| 616 function copyProperties(to, from) { | 617 function copyProperties(to, from) { |
| 617 let names = getOwnPropertyNames(from); | 618 function copyPropertiesHelper(names) { |
| 618 for (let i = 0; i < names.length; i++) { | 619 for (let i = 0; i < names.length; i++) { |
| 619 let name = names[i]; | 620 let name = names[i]; |
| 620 defineProperty(to, name, getOwnPropertyDescriptor(from, name)); | 621 defineProperty(to, name, getOwnPropertyDescriptor(from, name)); |
| 622 } |
| 621 } | 623 } |
| 624 copyPropertiesHelper(getOwnPropertyNames(from)); |
| 625 copyPropertiesHelper(getOwnPropertySymbols(from)); |
| 622 return to; | 626 return to; |
| 623 } | 627 } |
| 624 dart.copyProperties = copyProperties; | 628 dart.copyProperties = copyProperties; |
| 625 | 629 |
| 626 /** | 630 /** |
| 627 * This is called whenever a derived class needs to introduce a new field, | 631 * This is called whenever a derived class needs to introduce a new field, |
| 628 * shadowing a field or getter/setter pair on its parent. | 632 * shadowing a field or getter/setter pair on its parent. |
| 629 * | 633 * |
| 630 * This is important because otherwise, trying to read or write the field | 634 * This is important because otherwise, trying to read or write the field |
| 631 * would end up calling the getter or setter, and one of those might not even | 635 * would end up calling the getter or setter, and one of those might not even |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 804 dart.void = { toString() { return 'void'; } }; | 808 dart.void = { toString() { return 'void'; } }; |
| 805 dart.bottom = { toString() { return 'bottom'; } }; | 809 dart.bottom = { toString() { return 'bottom'; } }; |
| 806 | 810 |
| 807 dart.JsSymbol = Symbol; | 811 dart.JsSymbol = Symbol; |
| 808 | 812 |
| 809 // TODO(jmesserly): hack to bootstrap the SDK | 813 // TODO(jmesserly): hack to bootstrap the SDK |
| 810 _js_helper = _js_helper || {}; | 814 _js_helper = _js_helper || {}; |
| 811 _js_helper.checkNum = notNull; | 815 _js_helper.checkNum = notNull; |
| 812 | 816 |
| 813 })(dart || (dart = {})); | 817 })(dart || (dart = {})); |
| OLD | NEW |