Changeset 196042 in webkit


Ignore:
Timestamp:
Feb 2, 2016 8:22:39 PM (8 years ago)
Author:
commit-queue@webkit.org
Message:

[JSC] make Object.getOwnPropertyDescriptors() work with non-JSObject types
https://bugs.webkit.org/show_bug.cgi?id=153814

Patch by Caitlin Potter <caitp@igalia.com> on 2016-02-02
Reviewed by Yusuke Suzuki.

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetOwnPropertyDescriptors):

  • tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors.js:

(testGlobalProxy):

Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r196041 r196042  
     12016-02-02  Caitlin Potter  <caitp@igalia.com>
     2
     3        [JSC] make Object.getOwnPropertyDescriptors() work with non-JSObject types
     4        https://bugs.webkit.org/show_bug.cgi?id=153814
     5
     6        Reviewed by Yusuke Suzuki.
     7
     8        * runtime/ObjectConstructor.cpp:
     9        (JSC::objectConstructorGetOwnPropertyDescriptors):
     10        * tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors.js:
     11        (testGlobalProxy):
     12
    1132016-02-02  Aakash Jain  <aakash_jain@apple.com>
    214
  • trunk/Source/JavaScriptCore/runtime/ObjectConstructor.cpp

    r196040 r196042  
    252252{
    253253    PropertyNameArray properties(exec, PropertyNameMode::StringsAndSymbols);
    254     object->getOwnPropertyNames(object, exec, properties, EnumerationMode(DontEnumPropertiesMode::Include));
     254    object->methodTable(exec->vm())->getOwnPropertyNames(object, exec, properties, EnumerationMode(DontEnumPropertiesMode::Include));
    255255    if (exec->hadException())
    256256        return jsUndefined();
  • trunk/Source/JavaScriptCore/tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors.js

    r196040 r196042  
    8282    shouldBe(result.c.value, 'C');
    8383})();
     84
     85(function testGlobalProxy(global) {
     86    var symbol = Symbol('test');
     87    global[symbol] = 'Symbol(test)';
     88
     89    var result = Object.getOwnPropertyDescriptors(global);
     90
     91    shouldBeDataProperty(result[symbol], 'Symbol(test)', 'global[Symbol(test)]');
     92    // FIXME: Can't delete Symbol properties from a JSSymbolTableObject.
     93    // delete global[symbol];
     94})(this);
Note: See TracChangeset for help on using the changeset viewer.