hunk.code_window: var Map = require('../../dist/cjs/util/Map').Map;
   var Rx = require('../../dist/cjs/Rx');
   var polyfillSymbol = SymbolShim.polyfillSymbol;
   var ensureIterator = SymbolShim.ensureIterator;
   describe('SymbolShim', function () {
     it('should setup symbol if root does not have it', function () {
       var root = {};
       var result = polyfillSymbol(root);
       expect(root.Symbol).toBeDefined();
  
hunk.labels: keep keep keep keep keep replace keep keep keep keep keep
hunk.after_edit: describe('SymbolShim.polyfillSymbol', function () {
     it('should polyfill Symbol to be a function that returns a primitive that is unique', function () {
       var Symbol = polyfillSymbol({ });
       expect(typeof Symbol).toBe('function');
       var x = Symbol('test');
       var y = Symbol('test');
       expect(x !== y).toBe(true); // should be obvious, but this is the important part.
       expect(x).toBe('@@Symbol(test):0');
       expect(y).toBe('@@Symbol(test):1');
     });
  
hunk.file_path: spec/util/SymbolShim-spec.js
hunk.type: replace
file: import {Subscription} from './Subscription';
  import {Action} from './scheduler/Action';
  
  export interface Scheduler {
    now(): number;
    schedule<T>(work: (state?: any) => Subscription<T>|void, delay?: number, state?: any): Subscription<T>;
    flush(): void;
    actions: Action[];
    scheduled: boolean;
    active: boolean;
  }