Skip to content

Commit a95de91

Browse files
author
Lucas Vogel
committed
Added polyfill of defineproperty
1 parent f32d97e commit a95de91

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

gulpfile.js/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
var fs = require('fs');
12
var gulp = require('gulp');
23
var browserify = require('browserify');
34
var babelify = require('babelify');
@@ -52,6 +53,7 @@ gulp.task('es2015-to-es5', ['clean'], function() {
5253
.bundle()
5354
.on('error', util.log.bind(util, 'Browserify Error'))
5455
.pipe(source(outputFileName))
56+
.pipe(insert.prepend(fs.readFileSync(srcRoot + '/lib/polyfills.js')))
5557
.pipe(insert.prepend(
5658
'#includepath "~/Documents/;%USERPROFILE%Documents";\n' +
5759
'#include "basiljs/bundle/basil.js";\n\n'

src/lib/polyfills.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
try {
2+
Object.defineProperty({}, 'a', {value: 0});
3+
}
4+
catch(err) {
5+
// failed: so we're in IE8
6+
(function() {
7+
var defineProperty = Object.defineProperty;
8+
Object.defineProperty = function (object, property, descriptor) {
9+
delete descriptor.configurable;
10+
delete descriptor.enumerable;
11+
delete descriptor.writable;
12+
try {
13+
return defineProperty(object, property, descriptor);
14+
}
15+
catch(err) {
16+
object[property] = descriptor.value;
17+
}
18+
};
19+
}());
20+
}
21+
22+
Object.defineProperties || (Object.defineProperties=function defineProperties(object, descriptors) {
23+
var property;
24+
for (property in descriptors) {
25+
Object.defineProperty(object, property, descriptors[property]);
26+
}
27+
return object;
28+
});

0 commit comments

Comments
 (0)