[es6] Fix length property of collection constructors

{Map, Set, WeakMap, WeakSet}.length should be 0.

BUG=v8:4021
LOG=N
R=adamk@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27798}
This commit is contained in:
arv 2015-04-13 11:59:40 -07:00 committed by Commit bot
parent 3118df2362
commit 186dd69b3a
3 changed files with 5 additions and 1 deletions

View File

@ -236,6 +236,7 @@ function SetForEach(f, receiver) {
%SetCode($Set, SetConstructor);
%FunctionSetLength($Set, 0);
%FunctionSetPrototype($Set, new $Object());
%AddNamedProperty($Set.prototype, "constructor", $Set, DONT_ENUM);
%AddNamedProperty(
@ -424,6 +425,7 @@ function MapForEach(f, receiver) {
%SetCode($Map, MapConstructor);
%FunctionSetLength($Map, 0);
%FunctionSetPrototype($Map, new $Object());
%AddNamedProperty($Map.prototype, "constructor", $Map, DONT_ENUM);
%AddNamedProperty(

View File

@ -85,6 +85,7 @@ function SetUpWeakMap() {
%CheckIsBootstrapping();
%SetCode($WeakMap, WeakMapConstructor);
%FunctionSetLength($WeakMap, 0);
%FunctionSetPrototype($WeakMap, new $Object());
%AddNamedProperty($WeakMap.prototype, "constructor", $WeakMap, DONT_ENUM);
%AddNamedProperty(
@ -162,6 +163,7 @@ function SetUpWeakSet() {
%CheckIsBootstrapping();
%SetCode($WeakSet, WeakSetConstructor);
%FunctionSetLength($WeakSet, 0);
%FunctionSetPrototype($WeakSet, new $Object());
%AddNamedProperty($WeakSet.prototype, "constructor", $WeakSet, DONT_ENUM);
%AddNamedProperty(

View File

@ -346,7 +346,7 @@ function TestConstructor(C) {
assertFalse(C === Object.prototype.constructor);
assertSame(C, C.prototype.constructor);
assertSame(C, (new C).__proto__.constructor);
assertEquals(1, C.length);
assertEquals(0, C.length);
}
TestConstructor(Set);
TestConstructor(Map);