build/breeze.debug.js
function Enum(name, methodObj) {
    this.name = name;
    var prototype = new EnumSymbol(methodObj);
    prototype.parentEnum = this;
    this._symbolPrototype = prototype;
    if (methodObj) {
      Object.keys(methodObj).forEach(function (key) {
        prototype[key] = methodObj[key];
      });
    }
  }
function Enum(name, methodObj) {
    this.name = name;
    var prototype = new EnumSymbol(methodObj);
    prototype.parentEnum = this;
    this._symbolPrototype = prototype;
    if (methodObj) {
      Object.keys(methodObj).forEach(function (key) {
        prototype[key] = methodObj[key];
      });
    }
  }
function Enum ( name , methodObj ) { this . name = name ; var prototype = new EnumSymbol ( methodObj ) ; prototype . parentEnum = this ; this . _symbolPrototype = prototype ; if ( methodObj ) { Object . keys ( methodObj ) . forEach ( function ( key ) { prototype [ key ] = methodObj [ key ] ; } ) ; } }
Base class for all Breeze enumerations, such as EntityState, DataType, FetchStrategy, MergeStrategy etc.
A Breeze Enum is a namespaced set of constant values.  Each Enum consists of a group of related constants, called 'symbols'.
Unlike enums in some other environments, each 'symbol' can have both methods and properties.

@example
Example of creating a new Enum
var prototype = {
nextDay: function () {
var nextIndex = (this.dayIndex+1) % 7;
return DayOfWeek.getSymbols()[nextIndex];
}
};

var DayOfWeek = new Enum("DayOfWeek", prototype);
DayOfWeek.Monday    = DayOfWeek.addSymbol( { dayIndex: 0 });
DayOfWeek.Tuesday   = DayOfWeek.addSymbol( { dayIndex: 1 });
DayOfWeek.Wednesday = DayOfWeek.addSymbol( { dayIndex: 2 });
DayOfWeek.Thursday  = DayOfWeek.addSymbol( { dayIndex: 3 });
DayOfWeek.Friday    = DayOfWeek.addSymbol( { dayIndex: 4 });
DayOfWeek.Saturday  = DayOfWeek.addSymbol( { dayIndex: 5, isWeekend: true });
DayOfWeek.Sunday    = DayOfWeek.addSymbol( { dayIndex: 6, isWeekend: true });
DayOfWeek.resolveSymbols();

custom methods
ok(DayOfWeek.Monday.nextDay() === DayOfWeek.Tuesday);
ok(DayOfWeek.Sunday.nextDay() === DayOfWeek.Monday);
custom properties
ok(DayOfWeek.Tuesday.isWeekend === undefined);
ok(DayOfWeek.Saturday.isWeekend == true);
Standard enum capabilities
ok(DayOfWeek instanceof Enum);
ok(Enum.isSymbol(DayOfWeek.Wednesday));
ok(DayOfWeek.contains(DayOfWeek.Thursday));
ok(DayOfWeek.Tuesday.parentEnum == DayOfWeek);
ok(DayOfWeek.getSymbols().length === 7);
ok(DayOfWeek.Friday.toString() === "Friday");


@class Enum
 
Enum constructor - may be used to create new Enums.
@example
var prototype = {
nextDay: function () {
var nextIndex = (this.dayIndex+1) % 7;
return DayOfWeek.getSymbols()[nextIndex];
}
};

var DayOfWeek = new Enum("DayOfWeek", prototype);
@method <ctor> Enum
@param name {String}
@param [methodObj] {Object}
Base class for all Breeze enumerations such as EntityState DataType FetchStrategy MergeStrategy etc . A Breeze Enum is a namespaced set of constant values . Each Enum consists of a group of related constants called symbols . Unlike enums in some other environments each symbol can have both methods and properties .