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));
 |