Skip to content

Commit

Permalink
Implemented Reflect.get and fixed enumerability of Reflect's properties
Browse files Browse the repository at this point in the history
  • Loading branch information
Victorystick committed Jan 3, 2015
1 parent 66ec83b commit 1303da4
Showing 1 changed file with 34 additions and 2 deletions.
36 changes: 34 additions & 2 deletions es6-shim.js
Original file line number Diff line number Diff line change
Expand Up @@ -2100,15 +2100,45 @@

// Reflect
if (!globals.Reflect) {
defineProperty(globals, 'Reflect', {
var Reflect = {};

var internal_get = function get(target, key, receiver) {
var desc = Object.getOwnPropertyDescriptor(target, key);

if (!desc) {
var parent = Reflect.getPrototypeOf(target);

if (parent === null) {
return undefined;
}

return internal_get(parent, key, receiver);
}

if ('value' in desc) {
return desc.value;
}

if (desc.get) {
return desc.get.call(receiver);
}

return undefined;
};

defineProperties(Reflect, {

// Syntax in a functional form.
get: function get(target, key, receiver) {
if (!ES.TypeIsObject(target)) {
throw new TypeError('target must be an object');
}

return target[key];
if (typeof receiver === 'undefined') {
receiver = target;
}

return internal_get(target, key, receiver);
},

set: function set(target, key, value, receiver) {
Expand Down Expand Up @@ -2189,6 +2219,8 @@
// Different name.
ownKeys: Object.keys
});

defineProperty(globals, 'Reflect', Reflect);
}
}

Expand Down

0 comments on commit 1303da4

Please sign in to comment.