I have a problem in IE8 with Breeze using breeze.metadata-helper.js. I already included es5-shim and sham libraries. It fails in: makePropDescription(proto, property) method, while trying to execute: Object.defineProperty(proto, propName, descr) with message "getters & setters can not be defined on this javascript engine".
The property that it fails to add is DeclarationID defined in:
define([], function () {
var dt = breeze.DataType;
var defaultNamespace = 'Our.Custom.Namespace';
// Breeze Labs: breeze.metadata.helper.js
var helper = new breeze.config.MetadataHelper();
var addDataService = helper.addDataService.bind(helper);
var addTypeToStore = helper.addTypeToStore.bind(helper);
var setDefaultNamespace = helper.setDefaultNamespace.bind(helper);
var createMetadataStore = function () {
return new breeze.MetadataStore();
};
var addDeclaration = function (store) {
var et = {
shortName: "Declaration",
namespace: defaultNamespace,
defaultResourceName: "Declaration",
dataProperties: {
DeclarationID: { dataType: dt.Int64, isPartOfKey: true },
MRN: { dataType: dt.String },
IssuingDate: { dataType: dt.DateTime },
DeclarationStateCode: { dataType: dt.String },
DeclarationStateID: { dataType: dt.Int64 },
DeclarationType: { dataType: dt.String }
}
};
return addTypeToStore(store, et);
};
var initialize = function (dataService) {
var store = createMetadataStore();
addDataService(store, dataService);
setDefaultNamespace(defaultNamespace);
addDeclaration(store);
return store;
};
return {
initialize: initialize
};
});
I'm using Breeze v1.4.11 and Metadata-Helper v1.0.5.