58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google Inc. All Rights Reserved.
 | |
|  *
 | |
|  * Use of this source code is governed by an MIT-style license that can be
 | |
|  * found in the LICENSE file at https://angular.io/license
 | |
|  */
 | |
| (function(_global) {
 | |
|   var mark = _global['__zone_symbol__mark'];
 | |
|   var measure = _global['__zone_symbol__measure'];
 | |
|   var testRunner = _global['__zone_symbol__testRunner'];
 | |
|   var zone = _global['__zone_symbol__callbackZone'];
 | |
|   var nativePromise = _global['__zone_symbol__Promise'];
 | |
|   var resolved = Promise.resolve(1);
 | |
|   var nativeResolved = nativePromise.resolve(1);
 | |
|   var testTarget = {
 | |
|     title: 'Promise',
 | |
|     times: 10,
 | |
|     before: function() {
 | |
|       _global['__zone_symbol__callbackContext'].measureName = 'Promise_callback';
 | |
|       _global['__zone_symbol__callbackContext'].type = 'microTask';
 | |
|       _global['__zone_symbol__callbackContext'].source = 'Promise.then';
 | |
|     },
 | |
|     apis: [
 | |
|       {
 | |
|         supportClear: false,
 | |
|         isAsync: true,
 | |
|         method: 'Promise',
 | |
|         nativeMethod: 'native_Promise',
 | |
|         run: function() { return resolved.then(function() {}); },
 | |
|         nativeRun: function() { return nativeResolved['__zone_symbol__then'](function() {}); },
 | |
|       },
 | |
|       {
 | |
|         isCallback: true,
 | |
|         isAsync: true,
 | |
|         supportClear: false,
 | |
|         method: 'Promise_callback',
 | |
|         nativeMethod: 'native_Promise_callback',
 | |
|         run: function() {
 | |
|           return zone.run(function() {
 | |
|             return Promise.resolve(1).then(function(v) { return v; });
 | |
|           });
 | |
|         },
 | |
|         nativeRun: function() {
 | |
|           var func = function() {};
 | |
|           return _global['__zone_symbol__Promise'].resolve(1)['__zone_symbol__then'](function() {
 | |
|             mark('native_Promise_callback');
 | |
|             var result = func.apply(this, arguments);
 | |
|             measure('native_Promise_callback', 'native_Promise_callback');
 | |
|             return result;
 | |
|           });
 | |
|         }
 | |
|       }
 | |
|     ],
 | |
|   };
 | |
|   return testRunner(testTarget);
 | |
| }(typeof window === 'undefined' ? global : window));
 |