PPC: [es6] Introduce spec compliant IsConstructor.
authormbrandy <mbrandy@us.ibm.com>
Wed, 30 Sep 2015 17:01:01 +0000 (10:01 -0700)
committerJongsoo Yoon <join.yoon@samsung.com>
Fri, 20 Nov 2015 13:32:16 +0000 (22:32 +0900)
commit0ffcb5037ea85beee7f2d32114899bc37863fa07
treee3fc36477f662673b278cbc6ce836a36d0611f86
parent0820c84985b2c690e99db4a63313286d15d86c70
PPC: [es6] Introduce spec compliant IsConstructor.

Port 8fe3ac07014ce5891be0a1cbd8019e9f3b02ff0b

Original commit message:
    There was already a bit on the Map named "function with prototype",
    which basically meant that the Map was a map for a JSFunction that could
    be used as a constructor. Now this CL generalizes that bit to
    IsConstructor, which says that whatever (Heap)Object you are looking at
    can be used as a constructor (i.e. the bit is also set for bound
    functions that can be used as constructors and proxies that have a
    [[Construct]] internal method).

    This way we have a single chokepoint for IsConstructor checking, which
    allows us to get rid of the various ways in which we tried to guess
    whether something could be used as a constructor or not.

    Drive-by-fix: Renamed IsConstructor on FunctionKind to
    IsClassConstructor to resolve the weird name clash, and the
    IsClassConstructor name also matches the spec.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=v8:4413, v8:4430
LOG=n

Review URL: https://codereview.chromium.org/1382673002

Cr-Commit-Position: refs/heads/master@{#31027}
src/ppc/builtins-ppc.cc