parent
a871cacbf2
commit
28c05b2861
4
.babelrc
4
.babelrc
|
@ -34,7 +34,9 @@
|
|||
"babel-runtime/helpers/extends": "./src/polyfills/extends",
|
||||
"babel-runtime/helpers/inherits": "./src/polyfills/inherits",
|
||||
"babel-runtime/helpers/createClass": "./src/polyfills/createClass",
|
||||
"babel-runtime/helpers/possibleConstructorReturn": "./src/polyfills/possibleConstructorReturn"
|
||||
"babel-runtime/helpers/possibleConstructorReturn": "./src/polyfills/possibleConstructorReturn",
|
||||
"babel-runtime/helpers/classCallCheck": "./src/polyfills/classCallCheck",
|
||||
"babel-runtime/core-js/object/keys": "./src/polyfills/keys"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
export default function(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError('Cannot call a class as a function')
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
|
||||
var hasOwnProperty = Object.prototype.hasOwnProperty,
|
||||
hasDontEnumBug = !{ toString: null }.propertyIsEnumerable('toString'),
|
||||
dontEnums = [
|
||||
'toString',
|
||||
'toLocaleString',
|
||||
'valueOf',
|
||||
'hasOwnProperty',
|
||||
'isPrototypeOf',
|
||||
'propertyIsEnumerable',
|
||||
'constructor',
|
||||
],
|
||||
dontEnumsLength = dontEnums.length
|
||||
|
||||
export default function(obj) {
|
||||
if (typeof obj !== 'function' && (typeof obj !== 'object' || obj === null)) {
|
||||
throw new TypeError('Object.keys called on non-object')
|
||||
}
|
||||
|
||||
var result = [],
|
||||
prop,
|
||||
i
|
||||
|
||||
for (prop in obj) {
|
||||
if (hasOwnProperty.call(obj, prop)) {
|
||||
result.push(prop)
|
||||
}
|
||||
}
|
||||
|
||||
if (hasDontEnumBug) {
|
||||
for (i = 0; i < dontEnumsLength; i++) {
|
||||
if (hasOwnProperty.call(obj, dontEnums[i])) {
|
||||
result.push(dontEnums[i])
|
||||
}
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
Loading…
Reference in New Issue