diff options
author | Ben Murdoch <benm@google.com> | 2014-10-22 18:25:44 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2014-10-22 18:25:44 +0100 |
commit | 7619b692cf240f0633cf72c99bff0593596893af (patch) | |
tree | dd513cd9a89b50ced4233ef2db9da40d541e3067 | |
parent | 1a99f89a4e1c1494c838619b21c8eb3d430ce9cc (diff) | |
parent | 69b9761562d490efb776b957b1439ad81b5c313a (diff) | |
download | v8-7619b692cf240f0633cf72c99bff0593596893af.tar.gz |
Merge v8 from https://chromium.googlesource.com/a/v8/v8.git at 69b9761562d490efb776b957b1439ad81b5c313a
This commit was generated by merge_from_chromium.py.
Change-Id: I991dd2ee9a1bb665df57b0b0e4d95f431e973ef0
-rw-r--r-- | src/array-iterator.js | 2 | ||||
-rw-r--r-- | src/array.js | 1 | ||||
-rw-r--r-- | src/compiler.cc | 18 | ||||
-rw-r--r-- | src/compiler.h | 11 | ||||
-rw-r--r-- | src/date.h | 48 | ||||
-rw-r--r-- | src/version.cc | 2 | ||||
-rw-r--r-- | src/x87/lithium-codegen-x87.cc | 76 | ||||
-rw-r--r-- | src/x87/lithium-x87.cc | 6 | ||||
-rw-r--r-- | src/x87/lithium-x87.h | 10 | ||||
-rw-r--r-- | test/mjsunit/es6/arguments-iterator.js | 20 | ||||
-rw-r--r-- | test/mjsunit/es6/array-iterator.js | 17 | ||||
-rw-r--r-- | test/mjsunit/es6/typed-array-iterator.js | 4 | ||||
-rw-r--r-- | test/mjsunit/regress/regress-3116.js | 314 | ||||
-rw-r--r-- | test/webkit/fast/js/Object-getOwnPropertyNames-expected.txt | 2 | ||||
-rw-r--r-- | test/webkit/fast/js/Object-getOwnPropertyNames.js | 2 | ||||
-rw-r--r-- | tools/whitespace.txt | 2 |
16 files changed, 473 insertions, 62 deletions
diff --git a/src/array-iterator.js b/src/array-iterator.js index 82779bc22..5ced9da17 100644 --- a/src/array-iterator.js +++ b/src/array-iterator.js @@ -120,8 +120,8 @@ function ExtendArrayPrototype() { %CheckIsBootstrapping(); InstallFunctions($Array.prototype, DONT_ENUM, $Array( + // No 'values' since it breaks webcompat: http://crbug.com/409858 'entries', ArrayEntries, - 'values', ArrayValues, 'keys', ArrayKeys )); diff --git a/src/array.js b/src/array.js index 44deff7de..81f1f65ef 100644 --- a/src/array.js +++ b/src/array.js @@ -1481,7 +1481,6 @@ function SetUpArray() { find: true, findIndex: true, keys: true, - values: true, }; %AddNamedProperty($Array.prototype, symbolUnscopables, unscopables, DONT_ENUM | READ_ONLY); diff --git a/src/compiler.cc b/src/compiler.cc index 433177064..7cd76ff2f 100644 --- a/src/compiler.cc +++ b/src/compiler.cc @@ -52,7 +52,8 @@ CompilationInfo::CompilationInfo(Handle<Script> script, Zone* zone) parameter_count_(0), optimization_id_(-1), ast_value_factory_(NULL), - ast_value_factory_owned_(false) { + ast_value_factory_owned_(false), + aborted_due_to_dependency_change_(false) { Initialize(script->GetIsolate(), BASE, zone); } @@ -65,7 +66,8 @@ CompilationInfo::CompilationInfo(Isolate* isolate, Zone* zone) parameter_count_(0), optimization_id_(-1), ast_value_factory_(NULL), - ast_value_factory_owned_(false) { + ast_value_factory_owned_(false), + aborted_due_to_dependency_change_(false) { Initialize(isolate, STUB, zone); } @@ -80,7 +82,8 @@ CompilationInfo::CompilationInfo(Handle<SharedFunctionInfo> shared_info, parameter_count_(0), optimization_id_(-1), ast_value_factory_(NULL), - ast_value_factory_owned_(false) { + ast_value_factory_owned_(false), + aborted_due_to_dependency_change_(false) { Initialize(script_->GetIsolate(), BASE, zone); } @@ -96,7 +99,8 @@ CompilationInfo::CompilationInfo(Handle<JSFunction> closure, Zone* zone) parameter_count_(0), optimization_id_(-1), ast_value_factory_(NULL), - ast_value_factory_owned_(false) { + ast_value_factory_owned_(false), + aborted_due_to_dependency_change_(false) { Initialize(script_->GetIsolate(), BASE, zone); } @@ -109,7 +113,8 @@ CompilationInfo::CompilationInfo(HydrogenCodeStub* stub, Isolate* isolate, parameter_count_(0), optimization_id_(-1), ast_value_factory_(NULL), - ast_value_factory_owned_(false) { + ast_value_factory_owned_(false), + aborted_due_to_dependency_change_(false) { Initialize(isolate, STUB, zone); code_stub_ = stub; } @@ -126,7 +131,8 @@ CompilationInfo::CompilationInfo( parameter_count_(0), optimization_id_(-1), ast_value_factory_(NULL), - ast_value_factory_owned_(false) { + ast_value_factory_owned_(false), + aborted_due_to_dependency_change_(false) { Initialize(isolate, BASE, zone); } diff --git a/src/compiler.h b/src/compiler.h index 9617afc9f..8c4177197 100644 --- a/src/compiler.h +++ b/src/compiler.h @@ -84,8 +84,7 @@ class CompilationInfo { kContextSpecializing = 1 << 16, kInliningEnabled = 1 << 17, kTypingEnabled = 1 << 18, - kDisableFutureOptimization = 1 << 19, - kAbortedDueToDependency = 1 << 20 + kDisableFutureOptimization = 1 << 19 }; CompilationInfo(Handle<JSFunction> closure, Zone* zone); @@ -366,12 +365,12 @@ class CompilationInfo { void AbortDueToDependencyChange() { DCHECK(!OptimizingCompilerThread::IsOptimizerThread(isolate())); - SetFlag(kAbortedDueToDependency); + aborted_due_to_dependency_change_ = true; } bool HasAbortedDueToDependencyChange() const { DCHECK(!OptimizingCompilerThread::IsOptimizerThread(isolate())); - return GetFlag(kAbortedDueToDependency); + return aborted_due_to_dependency_change_; } bool HasSameOsrEntry(Handle<JSFunction> function, BailoutId osr_ast_id) { @@ -510,6 +509,10 @@ class CompilationInfo { bool ast_value_factory_owned_; AstNode::IdGen ast_node_id_gen_; + // This flag is used by the main thread to track whether this compilation + // should be abandoned due to dependency change. + bool aborted_due_to_dependency_change_; + DISALLOW_COPY_AND_ASSIGN(CompilationInfo); }; diff --git a/src/date.h b/src/date.h index 2e5ce39a0..813d3126e 100644 --- a/src/date.h +++ b/src/date.h @@ -104,21 +104,51 @@ class DateCache { // ECMA 262 - 15.9.1.9 // LocalTime(t) = t + LocalTZA + DaylightSavingTA(t) - // ECMA 262 assumes that DaylightSavingTA is computed using UTC time, - // but we fetch DST from OS using local time, therefore we need: - // LocalTime(t) = t + LocalTZA + DaylightSavingTA(t + LocalTZA). int64_t ToLocal(int64_t time_ms) { - time_ms += LocalOffsetInMs(); - return time_ms + DaylightSavingsOffsetInMs(time_ms); + return time_ms + LocalOffsetInMs() + DaylightSavingsOffsetInMs(time_ms); } // ECMA 262 - 15.9.1.9 // UTC(t) = t - LocalTZA - DaylightSavingTA(t - LocalTZA) - // ECMA 262 assumes that DaylightSavingTA is computed using UTC time, - // but we fetch DST from OS using local time, therefore we need: - // UTC(t) = t - LocalTZA - DaylightSavingTA(t). int64_t ToUTC(int64_t time_ms) { - return time_ms - LocalOffsetInMs() - DaylightSavingsOffsetInMs(time_ms); + // We need to compute UTC time that corresponds to the given local time. + // Literally following spec here leads to incorrect time computation at + // the points were we transition to and from DST. + // + // The following shows that using DST for (t - LocalTZA - hour) produces + // correct conversion. + // + // Consider transition to DST at local time L1. + // Let L0 = L1 - hour, L2 = L1 + hour, + // U1 = UTC time that corresponds to L1, + // U0 = U1 - hour. + // Transitioning to DST moves local clock one hour forward L1 => L2, so + // U0 = UTC time that corresponds to L0 = L0 - LocalTZA, + // U1 = UTC time that corresponds to L1 = L1 - LocalTZA, + // U1 = UTC time that corresponds to L2 = L2 - LocalTZA - hour. + // Note that DST(U0 - hour) = 0, DST(U0) = 0, DST(U1) = 1. + // U0 = L0 - LocalTZA - DST(L0 - LocalTZA - hour), + // U1 = L1 - LocalTZA - DST(L1 - LocalTZA - hour), + // U1 = L2 - LocalTZA - DST(L2 - LocalTZA - hour). + // + // Consider transition from DST at local time L1. + // Let L0 = L1 - hour, + // U1 = UTC time that corresponds to L1, + // U0 = U1 - hour, U2 = U1 + hour. + // Transitioning from DST moves local clock one hour back L1 => L0, so + // U0 = UTC time that corresponds to L0 (before transition) + // = L0 - LocalTZA - hour. + // U1 = UTC time that corresponds to L0 (after transition) + // = L0 - LocalTZA = L1 - LocalTZA - hour + // U2 = UTC time that corresponds to L1 = L1 - LocalTZA. + // Note that DST(U0) = 1, DST(U1) = 0, DST(U2) = 0. + // U0 = L0 - LocalTZA - DST(L0 - LocalTZA - hour) = L0 - LocalTZA - DST(U0). + // U2 = L1 - LocalTZA - DST(L1 - LocalTZA - hour) = L1 - LocalTZA - DST(U1). + // It is impossible to get U1 from local time. + + const int kMsPerHour = 3600 * 1000; + time_ms -= LocalOffsetInMs(); + return time_ms - DaylightSavingsOffsetInMs(time_ms - kMsPerHour); } diff --git a/src/version.cc b/src/version.cc index c9af0473b..dc44f9297 100644 --- a/src/version.cc +++ b/src/version.cc @@ -35,7 +35,7 @@ #define MAJOR_VERSION 3 #define MINOR_VERSION 29 #define BUILD_NUMBER 88 -#define PATCH_LEVEL 6 +#define PATCH_LEVEL 10 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) #define IS_CANDIDATE_VERSION 0 diff --git a/src/x87/lithium-codegen-x87.cc b/src/x87/lithium-codegen-x87.cc index 4f79f84cb..00bbe5e72 100644 --- a/src/x87/lithium-codegen-x87.cc +++ b/src/x87/lithium-codegen-x87.cc @@ -4021,12 +4021,65 @@ void LCodeGen::DoMathFround(LMathFround* instr) { void LCodeGen::DoMathSqrt(LMathSqrt* instr) { - X87Register input_reg = ToX87Register(instr->value()); - X87Register output_reg = ToX87Register(instr->result()); - DCHECK(output_reg.is(input_reg)); - USE(output_reg); - X87Fxch(input_reg); - __ fsqrt(); + X87Register input = ToX87Register(instr->value()); + X87Register result_reg = ToX87Register(instr->result()); + Register temp_result = ToRegister(instr->temp1()); + Register temp = ToRegister(instr->temp2()); + Label slow, done, smi, finish; + DCHECK(result_reg.is(input)); + + // Store input into Heap number and call runtime function kMathExpRT. + if (FLAG_inline_new) { + __ AllocateHeapNumber(temp_result, temp, no_reg, &slow); + __ jmp(&done, Label::kNear); + } + + // Slow case: Call the runtime system to do the number allocation. + __ bind(&slow); + { + // TODO(3095996): Put a valid pointer value in the stack slot where the + // result register is stored, as this register is in the pointer map, but + // contains an integer value. + __ Move(temp_result, Immediate(0)); + + // Preserve the value of all registers. + PushSafepointRegistersScope scope(this); + + __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset)); + __ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber); + RecordSafepointWithRegisters( + instr->pointer_map(), 0, Safepoint::kNoLazyDeopt); + __ StoreToSafepointRegisterSlot(temp_result, eax); + } + __ bind(&done); + X87LoadForUsage(input); + __ fstp_d(FieldOperand(temp_result, HeapNumber::kValueOffset)); + + { + // Preserve the value of all registers. + PushSafepointRegistersScope scope(this); + + __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset)); + __ push(temp_result); + __ CallRuntimeSaveDoubles(Runtime::kMathSqrtRT); + RecordSafepointWithRegisters( + instr->pointer_map(), 0, Safepoint::kNoLazyDeopt); + __ StoreToSafepointRegisterSlot(temp_result, eax); + } + X87PrepareToWrite(result_reg); + // return value of MathExpRT is Smi or Heap Number. + __ JumpIfSmi(temp_result, &smi); + // Heap number(double) + __ fld_d(FieldOperand(temp_result, HeapNumber::kValueOffset)); + __ jmp(&finish); + // SMI + __ bind(&smi); + __ SmiUntag(temp_result); + __ push(temp_result); + __ fild_s(MemOperand(esp, 0)); + __ pop(temp_result); + __ bind(&finish); + X87CommitWrite(result_reg); } @@ -5302,9 +5355,10 @@ void LCodeGen::DoDoubleToI(LDoubleToI* instr) { Label lost_precision, is_nan, minus_zero, done; X87Register input_reg = ToX87Register(input); X87Fxch(input_reg); + Label::Distance dist = DeoptEveryNTimes() ? Label::kFar : Label::kNear; __ X87TOSToI(result_reg, instr->hydrogen()->GetMinusZeroMode(), - &lost_precision, &is_nan, &minus_zero, Label::kNear); - __ jmp(&done, Label::kNear); + &lost_precision, &is_nan, &minus_zero, dist); + __ jmp(&done); __ bind(&lost_precision); DeoptimizeIf(no_condition, instr, "lost precision"); __ bind(&is_nan); @@ -5326,10 +5380,10 @@ void LCodeGen::DoDoubleToSmi(LDoubleToSmi* instr) { Label lost_precision, is_nan, minus_zero, done; X87Register input_reg = ToX87Register(input); X87Fxch(input_reg); + Label::Distance dist = DeoptEveryNTimes() ? Label::kFar : Label::kNear; __ X87TOSToI(result_reg, instr->hydrogen()->GetMinusZeroMode(), - &lost_precision, &is_nan, &minus_zero, - DeoptEveryNTimes() ? Label::kFar : Label::kNear); - __ jmp(&done, Label::kNear); + &lost_precision, &is_nan, &minus_zero, dist); + __ jmp(&done); __ bind(&lost_precision); DeoptimizeIf(no_condition, instr, "lost precision"); __ bind(&is_nan); diff --git a/src/x87/lithium-x87.cc b/src/x87/lithium-x87.cc index f46aef929..9304b8975 100644 --- a/src/x87/lithium-x87.cc +++ b/src/x87/lithium-x87.cc @@ -1252,8 +1252,10 @@ LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) { LInstruction* LChunkBuilder::DoMathSqrt(HUnaryMathOperation* instr) { LOperand* input = UseRegisterAtStart(instr->value()); - LMathSqrt* result = new(zone()) LMathSqrt(input); - return DefineSameAsFirst(result); + LOperand* temp1 = FixedTemp(ecx); + LOperand* temp2 = FixedTemp(edx); + LMathSqrt* result = new(zone()) LMathSqrt(input, temp1, temp2); + return MarkAsCall(DefineSameAsFirst(result), instr); } diff --git a/src/x87/lithium-x87.h b/src/x87/lithium-x87.h index cf0e7b2d9..dbb18ecab 100644 --- a/src/x87/lithium-x87.h +++ b/src/x87/lithium-x87.h @@ -973,13 +973,19 @@ class LMathExp FINAL : public LTemplateInstruction<1, 1, 2> { }; -class LMathSqrt FINAL : public LTemplateInstruction<1, 1, 0> { +class LMathSqrt FINAL : public LTemplateInstruction<1, 1, 2> { public: - explicit LMathSqrt(LOperand* value) { + explicit LMathSqrt(LOperand* value, + LOperand* temp1, + LOperand* temp2) { inputs_[0] = value; + temps_[0] = temp1; + temps_[1] = temp2; } LOperand* value() { return inputs_[0]; } + LOperand* temp1() { return temps_[0]; } + LOperand* temp2() { return temps_[1]; } DECLARE_CONCRETE_INSTRUCTION(MathSqrt, "math-sqrt") }; diff --git a/test/mjsunit/es6/arguments-iterator.js b/test/mjsunit/es6/arguments-iterator.js index a65bf8bad..32d4b11ee 100644 --- a/test/mjsunit/es6/arguments-iterator.js +++ b/test/mjsunit/es6/arguments-iterator.js @@ -16,8 +16,8 @@ function TestDirectArgumentsIteratorProperty() { assertTrue(descriptor.writable); assertFalse(descriptor.enumerable); assertTrue(descriptor.configurable); - assertEquals(descriptor.value, [].values); - assertEquals(arguments[Symbol.iterator], [].values); + assertEquals(descriptor.value, [][Symbol.iterator]); + assertEquals(arguments[Symbol.iterator], [][Symbol.iterator]); } TestDirectArgumentsIteratorProperty(); @@ -26,7 +26,7 @@ function TestIndirectArgumentsIteratorProperty() { var o = arguments; assertTrue(o.hasOwnProperty(Symbol.iterator)); assertFalse(o.propertyIsEnumerable(Symbol.iterator)); - assertEquals(o[Symbol.iterator], [].values); + assertEquals(o[Symbol.iterator], [][Symbol.iterator]); } TestIndirectArgumentsIteratorProperty(); @@ -204,27 +204,27 @@ function TestArgumentsAsProto() { "use strict"; var o = {__proto__:arguments}; - assertSame([].values, o[Symbol.iterator]); + assertSame([][Symbol.iterator], o[Symbol.iterator]); // Make o dict-mode. %OptimizeObjectForAddingMultipleProperties(o, 0); assertFalse(o.hasOwnProperty(Symbol.iterator)); - assertSame([].values, o[Symbol.iterator]); + assertSame([][Symbol.iterator], o[Symbol.iterator]); o[Symbol.iterator] = 10; assertTrue(o.hasOwnProperty(Symbol.iterator)); assertEquals(10, o[Symbol.iterator]); - assertSame([].values, arguments[Symbol.iterator]); + assertSame([][Symbol.iterator], arguments[Symbol.iterator]); // Frozen o. o = Object.freeze({__proto__:arguments}); - assertSame([].values, o[Symbol.iterator]); + assertSame([][Symbol.iterator], o[Symbol.iterator]); assertFalse(o.hasOwnProperty(Symbol.iterator)); - assertSame([].values, o[Symbol.iterator]); + assertSame([][Symbol.iterator], o[Symbol.iterator]); // This should throw, but currently it doesn't, because // ExecutableAccessorInfo callbacks don't see the current strict mode. // See note in accessors.cc:SetPropertyOnInstanceIfInherited. o[Symbol.iterator] = 10; assertFalse(o.hasOwnProperty(Symbol.iterator)); - assertEquals([].values, o[Symbol.iterator]); - assertSame([].values, arguments[Symbol.iterator]); + assertEquals([][Symbol.iterator], o[Symbol.iterator]); + assertSame([][Symbol.iterator], arguments[Symbol.iterator]); } TestArgumentsAsProto(); diff --git a/test/mjsunit/es6/array-iterator.js b/test/mjsunit/es6/array-iterator.js index b24ee5712..96122cd99 100644 --- a/test/mjsunit/es6/array-iterator.js +++ b/test/mjsunit/es6/array-iterator.js @@ -45,11 +45,8 @@ function assertHasOwnProperty(object, name, attrs) { function TestArrayPrototype() { assertHasOwnProperty(Array.prototype, 'entries', DONT_ENUM); - assertHasOwnProperty(Array.prototype, 'values', DONT_ENUM); assertHasOwnProperty(Array.prototype, 'keys', DONT_ENUM); assertHasOwnProperty(Array.prototype, Symbol.iterator, DONT_ENUM); - - assertEquals(Array.prototype.values, Array.prototype[Symbol.iterator]); } TestArrayPrototype(); @@ -61,7 +58,7 @@ function assertIteratorResult(value, done, result) { function TestValues() { var array = ['a', 'b', 'c']; - var iterator = array.values(); + var iterator = array[Symbol.iterator](); assertIteratorResult('a', false, iterator.next()); assertIteratorResult('b', false, iterator.next()); assertIteratorResult('c', false, iterator.next()); @@ -75,7 +72,7 @@ TestValues(); function TestValuesMutate() { var array = ['a', 'b', 'c']; - var iterator = array.values(); + var iterator = array[Symbol.iterator](); assertIteratorResult('a', false, iterator.next()); assertIteratorResult('b', false, iterator.next()); assertIteratorResult('c', false, iterator.next()); @@ -142,17 +139,17 @@ TestEntriesMutate(); function TestArrayIteratorPrototype() { var array = []; - var iterator = array.values(); + var iterator = array.keys(); var ArrayIteratorPrototype = iterator.__proto__; - assertEquals(ArrayIteratorPrototype, array.values().__proto__); + assertEquals(ArrayIteratorPrototype, array[Symbol.iterator]().__proto__); assertEquals(ArrayIteratorPrototype, array.keys().__proto__); assertEquals(ArrayIteratorPrototype, array.entries().__proto__); assertEquals(Object.prototype, ArrayIteratorPrototype.__proto__); - assertEquals('Array Iterator', %_ClassOf(array.values())); + assertEquals('Array Iterator', %_ClassOf(array[Symbol.iterator]())); assertEquals('Array Iterator', %_ClassOf(array.keys())); assertEquals('Array Iterator', %_ClassOf(array.entries())); @@ -169,7 +166,7 @@ function TestForArrayValues() { var buffer = []; var array = [0, 'a', true, false, null, /* hole */, undefined, NaN]; var i = 0; - for (var value of array.values()) { + for (var value of array[Symbol.iterator]()) { buffer[i++] = value; } @@ -239,7 +236,7 @@ TestForArrayValues(); function TestNonOwnSlots() { var array = [0]; - var iterator = array.values(); + var iterator = array[Symbol.iterator](); var object = {__proto__: iterator}; assertThrows(function() { diff --git a/test/mjsunit/es6/typed-array-iterator.js b/test/mjsunit/es6/typed-array-iterator.js index a2e4906c1..9903b0aba 100644 --- a/test/mjsunit/es6/typed-array-iterator.js +++ b/test/mjsunit/es6/typed-array-iterator.js @@ -21,9 +21,9 @@ function TestTypedArrayPrototype(constructor) { assertFalse(constructor.prototype.propertyIsEnumerable(Symbol.iterator)); assertEquals(Array.prototype.entries, constructor.prototype.entries); - assertEquals(Array.prototype.values, constructor.prototype.values); + assertEquals(Array.prototype[Symbol.iterator], constructor.prototype.values); assertEquals(Array.prototype.keys, constructor.prototype.keys); - assertEquals(Array.prototype.values, constructor.prototype[Symbol.iterator]); + assertEquals(Array.prototype[Symbol.iterator], constructor.prototype[Symbol.iterator]); } constructors.forEach(TestTypedArrayPrototype); diff --git a/test/mjsunit/regress/regress-3116.js b/test/mjsunit/regress/regress-3116.js new file mode 100644 index 000000000..ca55ccc88 --- /dev/null +++ b/test/mjsunit/regress/regress-3116.js @@ -0,0 +1,314 @@ +// Copyright 2014 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +function timezone(tz) { + var str = (new Date(2014, 0, 10)).toString(); + if (tz == "CET") { + return str == "Fri Jan 10 2014 00:00:00 GMT+0100 (CET)"; + } + if (tz == "BRT") { + return str == "Fri Jan 10 2014 00:00:00 GMT-0200 (BRST)"; + } + if (tz == "PST") { + return str == "Fri Jan 10 2014 00:00:00 GMT-0800 (PST)"; + } + return false; +} + +if (timezone("CET")) { + assertEquals("Sat Mar 29 2014 22:59:00 GMT+0100 (CET)", + (new Date(2014, 2, 29, 22, 59)).toString()); + assertEquals("Sat, 29 Mar 2014 21:59:00 GMT", + (new Date(2014, 2, 29, 22, 59)).toUTCString()); + assertEquals("Sat Mar 29 2014 23:00:00 GMT+0100 (CET)", + (new Date(2014, 2, 29, 23, 0)).toString()); + assertEquals("Sat, 29 Mar 2014 22:00:00 GMT", + (new Date(2014, 2, 29, 23, 0)).toUTCString()); + assertEquals("Sat Mar 29 2014 23:59:00 GMT+0100 (CET)", + (new Date(2014, 2, 29, 23, 59)).toString()); + assertEquals("Sat, 29 Mar 2014 22:59:00 GMT", + (new Date(2014, 2, 29, 23, 59)).toUTCString()); + assertEquals("Sun Mar 30 2014 00:00:00 GMT+0100 (CET)", + (new Date(2014, 2, 30, 0, 0)).toString()); + assertEquals("Sat, 29 Mar 2014 23:00:00 GMT", + (new Date(2014, 2, 30, 0, 0)).toUTCString()); + assertEquals("Sun Mar 30 2014 00:59:00 GMT+0100 (CET)", + (new Date(2014, 2, 30, 0, 59)).toString()); + assertEquals("Sat, 29 Mar 2014 23:59:00 GMT", + (new Date(2014, 2, 30, 0, 59)).toUTCString()); + assertEquals("Sun Mar 30 2014 01:00:00 GMT+0100 (CET)", + (new Date(2014, 2, 30, 1, 0)).toString()); + assertEquals("Sun, 30 Mar 2014 00:00:00 GMT", + (new Date(2014, 2, 30, 1, 0)).toUTCString()); + assertEquals("Sun Mar 30 2014 01:59:00 GMT+0100 (CET)", + (new Date(2014, 2, 30, 1, 59)).toString()); + assertEquals("Sun, 30 Mar 2014 00:59:00 GMT", + (new Date(2014, 2, 30, 1, 59)).toUTCString()); + assertEquals("Sun Mar 30 2014 03:00:00 GMT+0200 (CEST)", + (new Date(2014, 2, 30, 2, 0)).toString()); + assertEquals("Sun, 30 Mar 2014 01:00:00 GMT", + (new Date(2014, 2, 30, 2, 0)).toUTCString()); + assertEquals("Sun Mar 30 2014 03:59:00 GMT+0200 (CEST)", + (new Date(2014, 2, 30, 2, 59)).toString()); + assertEquals("Sun, 30 Mar 2014 01:59:00 GMT", + (new Date(2014, 2, 30, 2, 59)).toUTCString()); + assertEquals("Sun Mar 30 2014 03:00:00 GMT+0200 (CEST)", + (new Date(2014, 2, 30, 3, 0)).toString()); + assertEquals("Sun, 30 Mar 2014 01:00:00 GMT", + (new Date(2014, 2, 30, 3, 0)).toUTCString()); + assertEquals("Sun Mar 30 2014 03:59:00 GMT+0200 (CEST)", + (new Date(2014, 2, 30, 3, 59)).toString()); + assertEquals("Sun, 30 Mar 2014 01:59:00 GMT", + (new Date(2014, 2, 30, 3, 59)).toUTCString()); + assertEquals("Sun Mar 30 2014 04:00:00 GMT+0200 (CEST)", + (new Date(2014, 2, 30, 4, 0)).toString()); + assertEquals("Sun, 30 Mar 2014 02:00:00 GMT", + (new Date(2014, 2, 30, 4, 0)).toUTCString()); + assertEquals("Sat Oct 25 2014 22:59:00 GMT+0200 (CEST)", + (new Date(2014, 9, 25, 22, 59)).toString()); + assertEquals("Sat, 25 Oct 2014 20:59:00 GMT", + (new Date(2014, 9, 25, 22, 59)).toUTCString()); + assertEquals("Sat Oct 25 2014 23:00:00 GMT+0200 (CEST)", + (new Date(2014, 9, 25, 23, 0)).toString()); + assertEquals("Sat, 25 Oct 2014 21:00:00 GMT", + (new Date(2014, 9, 25, 23, 0)).toUTCString()); + assertEquals("Sat Oct 25 2014 23:59:00 GMT+0200 (CEST)", + (new Date(2014, 9, 25, 23, 59)).toString()); + assertEquals("Sat, 25 Oct 2014 21:59:00 GMT", + (new Date(2014, 9, 25, 23, 59)).toUTCString()); + assertEquals("Sun Oct 26 2014 00:00:00 GMT+0200 (CEST)", + (new Date(2014, 9, 26, 0, 0)).toString()); + assertEquals("Sat, 25 Oct 2014 22:00:00 GMT", + (new Date(2014, 9, 26, 0, 0)).toUTCString()); + assertEquals("Sun Oct 26 2014 00:59:00 GMT+0200 (CEST)", + (new Date(2014, 9, 26, 0, 59)).toString()); + assertEquals("Sat, 25 Oct 2014 22:59:00 GMT", + (new Date(2014, 9, 26, 0, 59)).toUTCString()); + assertEquals("Sun Oct 26 2014 01:00:00 GMT+0200 (CEST)", + (new Date(2014, 9, 26, 1, 0)).toString()); + assertEquals("Sat, 25 Oct 2014 23:00:00 GMT", + (new Date(2014, 9, 26, 1, 0)).toUTCString()); + assertEquals("Sun Oct 26 2014 01:59:00 GMT+0200 (CEST)", + (new Date(2014, 9, 26, 1, 59)).toString()); + assertEquals("Sat, 25 Oct 2014 23:59:00 GMT", + (new Date(2014, 9, 26, 1, 59)).toUTCString()); + assertEquals("Sun Oct 26 2014 02:00:00 GMT+0200 (CEST)", + (new Date(2014, 9, 26, 2, 0)).toString()); + assertEquals("Sun, 26 Oct 2014 00:00:00 GMT", + (new Date(2014, 9, 26, 2, 0)).toUTCString()); + assertEquals("Sun Oct 26 2014 02:59:00 GMT+0200 (CEST)", + (new Date(2014, 9, 26, 2, 59)).toString()); + assertEquals("Sun, 26 Oct 2014 00:59:00 GMT", + (new Date(2014, 9, 26, 2, 59)).toUTCString()); + assertEquals("Sun Oct 26 2014 03:00:00 GMT+0100 (CET)", + (new Date(2014, 9, 26, 3, 0)).toString()); + assertEquals("Sun, 26 Oct 2014 02:00:00 GMT", + (new Date(2014, 9, 26, 3, 0)).toUTCString()); + assertEquals("Sun Oct 26 2014 03:59:00 GMT+0100 (CET)", + (new Date(2014, 9, 26, 3, 59)).toString()); + assertEquals("Sun, 26 Oct 2014 02:59:00 GMT", + (new Date(2014, 9, 26, 3, 59)).toUTCString()); + assertEquals("Sun Oct 26 2014 04:00:00 GMT+0100 (CET)", + (new Date(2014, 9, 26, 4, 0)).toString()); + assertEquals("Sun, 26 Oct 2014 03:00:00 GMT", + (new Date(2014, 9, 26, 4, 0)).toUTCString()); +} + +if (timezone("BRT")) { + assertEquals("Sat Oct 18 2014 22:59:00 GMT-0300 (BRT)", + (new Date(2014, 9, 18, 22, 59)).toString()); + assertEquals("Sun, 19 Oct 2014 01:59:00 GMT", + (new Date(2014, 9, 18, 22, 59)).toUTCString()); + assertEquals("Sat Oct 18 2014 23:00:00 GMT-0300 (BRT)", + (new Date(2014, 9, 18, 23, 0)).toString()); + assertEquals("Sun, 19 Oct 2014 02:00:00 GMT", + (new Date(2014, 9, 18, 23, 0)).toUTCString()); + assertEquals("Sat Oct 18 2014 23:59:00 GMT-0300 (BRT)", + (new Date(2014, 9, 18, 23, 59)).toString()); + assertEquals("Sun, 19 Oct 2014 02:59:00 GMT", + (new Date(2014, 9, 18, 23, 59)).toUTCString()); + assertEquals("Sun Oct 19 2014 01:00:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 0, 0)).toString()); + assertEquals("Sun, 19 Oct 2014 03:00:00 GMT", + (new Date(2014, 9, 19, 0, 0)).toUTCString()); + assertEquals("Sun Oct 19 2014 01:59:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 0, 59)).toString()); + assertEquals("Sun, 19 Oct 2014 03:59:00 GMT", + (new Date(2014, 9, 19, 0, 59)).toUTCString()); + assertEquals("Sun Oct 19 2014 01:00:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 1, 0)).toString()); + assertEquals("Sun, 19 Oct 2014 03:00:00 GMT", + (new Date(2014, 9, 19, 1, 0)).toUTCString()); + assertEquals("Sun Oct 19 2014 01:59:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 1, 59)).toString()); + assertEquals("Sun, 19 Oct 2014 03:59:00 GMT", + (new Date(2014, 9, 19, 1, 59)).toUTCString()); + assertEquals("Sun Oct 19 2014 02:00:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 2, 0)).toString()); + assertEquals("Sun, 19 Oct 2014 04:00:00 GMT", + (new Date(2014, 9, 19, 2, 0)).toUTCString()); + assertEquals("Sun Oct 19 2014 02:59:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 2, 59)).toString()); + assertEquals("Sun, 19 Oct 2014 04:59:00 GMT", + (new Date(2014, 9, 19, 2, 59)).toUTCString()); + assertEquals("Sun Oct 19 2014 03:00:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 3, 0)).toString()); + assertEquals("Sun, 19 Oct 2014 05:00:00 GMT", + (new Date(2014, 9, 19, 3, 0)).toUTCString()); + assertEquals("Sun Oct 19 2014 03:59:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 3, 59)).toString()); + assertEquals("Sun, 19 Oct 2014 05:59:00 GMT", + (new Date(2014, 9, 19, 3, 59)).toUTCString()); + assertEquals("Sun Oct 19 2014 04:00:00 GMT-0200 (BRST)", + (new Date(2014, 9, 19, 4, 0)).toString()); + assertEquals("Sun, 19 Oct 2014 06:00:00 GMT", + (new Date(2014, 9, 19, 4, 0)).toUTCString()); + assertEquals("Sat Feb 15 2014 22:59:00 GMT-0200 (BRST)", + (new Date(2014, 1, 15, 22, 59)).toString()); + assertEquals("Sun, 16 Feb 2014 00:59:00 GMT", + (new Date(2014, 1, 15, 22, 59)).toUTCString()); + assertEquals("Sat Feb 15 2014 23:00:00 GMT-0200 (BRST)", + (new Date(2014, 1, 15, 23, 0)).toString()); + assertEquals("Sun, 16 Feb 2014 01:00:00 GMT", + (new Date(2014, 1, 15, 23, 0)).toUTCString()); + assertEquals("Sat Feb 15 2014 23:59:00 GMT-0200 (BRST)", + (new Date(2014, 1, 15, 23, 59)).toString()); + assertEquals("Sun, 16 Feb 2014 01:59:00 GMT", + (new Date(2014, 1, 15, 23, 59)).toUTCString()); + assertEquals("Sun Feb 16 2014 00:00:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 0, 0)).toString()); + assertEquals("Sun, 16 Feb 2014 03:00:00 GMT", + (new Date(2014, 1, 16, 0, 0)).toUTCString()); + assertEquals("Sun Feb 16 2014 00:59:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 0, 59)).toString()); + assertEquals("Sun, 16 Feb 2014 03:59:00 GMT", + (new Date(2014, 1, 16, 0, 59)).toUTCString()); + assertEquals("Sun Feb 16 2014 01:00:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 1, 0)).toString()); + assertEquals("Sun, 16 Feb 2014 04:00:00 GMT", + (new Date(2014, 1, 16, 1, 0)).toUTCString()); + assertEquals("Sun Feb 16 2014 01:59:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 1, 59)).toString()); + assertEquals("Sun, 16 Feb 2014 04:59:00 GMT", + (new Date(2014, 1, 16, 1, 59)).toUTCString()); + assertEquals("Sun Feb 16 2014 02:00:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 2, 0)).toString()); + assertEquals("Sun, 16 Feb 2014 05:00:00 GMT", + (new Date(2014, 1, 16, 2, 0)).toUTCString()); + assertEquals("Sun Feb 16 2014 02:59:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 2, 59)).toString()); + assertEquals("Sun, 16 Feb 2014 05:59:00 GMT", + (new Date(2014, 1, 16, 2, 59)).toUTCString()); + assertEquals("Sun Feb 16 2014 03:00:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 3, 0)).toString()); + assertEquals("Sun, 16 Feb 2014 06:00:00 GMT", + (new Date(2014, 1, 16, 3, 0)).toUTCString()); + assertEquals("Sun Feb 16 2014 03:59:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 3, 59)).toString()); + assertEquals("Sun, 16 Feb 2014 06:59:00 GMT", + (new Date(2014, 1, 16, 3, 59)).toUTCString()); + assertEquals("Sun Feb 16 2014 04:00:00 GMT-0300 (BRT)", + (new Date(2014, 1, 16, 4, 0)).toString()); + assertEquals("Sun, 16 Feb 2014 07:00:00 GMT", + (new Date(2014, 1, 16, 4, 0)).toUTCString()); +} + +if (timezone("PST")) { + assertEquals("Sat Mar 08 2014 22:59:00 GMT-0800 (PST)", + (new Date(2014, 2, 8, 22, 59)).toString()); + assertEquals("Sun, 09 Mar 2014 06:59:00 GMT", + (new Date(2014, 2, 8, 22, 59)).toUTCString()); + assertEquals("Sat Mar 08 2014 23:00:00 GMT-0800 (PST)", + (new Date(2014, 2, 8, 23, 0)).toString()); + assertEquals("Sun, 09 Mar 2014 07:00:00 GMT", + (new Date(2014, 2, 8, 23, 0)).toUTCString()); + assertEquals("Sat Mar 08 2014 23:59:00 GMT-0800 (PST)", + (new Date(2014, 2, 8, 23, 59)).toString()); + assertEquals("Sun, 09 Mar 2014 07:59:00 GMT", + (new Date(2014, 2, 8, 23, 59)).toUTCString()); + assertEquals("Sun Mar 09 2014 00:00:00 GMT-0800 (PST)", + (new Date(2014, 2, 9, 0, 0)).toString()); + assertEquals("Sun, 09 Mar 2014 08:00:00 GMT", + (new Date(2014, 2, 9, 0, 0)).toUTCString()); + assertEquals("Sun Mar 09 2014 00:59:00 GMT-0800 (PST)", + (new Date(2014, 2, 9, 0, 59)).toString()); + assertEquals("Sun, 09 Mar 2014 08:59:00 GMT", + (new Date(2014, 2, 9, 0, 59)).toUTCString()); + assertEquals("Sun Mar 09 2014 01:00:00 GMT-0800 (PST)", + (new Date(2014, 2, 9, 1, 0)).toString()); + assertEquals("Sun, 09 Mar 2014 09:00:00 GMT", + (new Date(2014, 2, 9, 1, 0)).toUTCString()); + assertEquals("Sun Mar 09 2014 01:59:00 GMT-0800 (PST)", + (new Date(2014, 2, 9, 1, 59)).toString()); + assertEquals("Sun, 09 Mar 2014 09:59:00 GMT", + (new Date(2014, 2, 9, 1, 59)).toUTCString()); + assertEquals("Sun Mar 09 2014 03:00:00 GMT-0700 (PDT)", + (new Date(2014, 2, 9, 2, 0)).toString()); + assertEquals("Sun, 09 Mar 2014 10:00:00 GMT", + (new Date(2014, 2, 9, 2, 0)).toUTCString()); + assertEquals("Sun Mar 09 2014 03:59:00 GMT-0700 (PDT)", + (new Date(2014, 2, 9, 2, 59)).toString()); + assertEquals("Sun, 09 Mar 2014 10:59:00 GMT", + (new Date(2014, 2, 9, 2, 59)).toUTCString()); + assertEquals("Sun Mar 09 2014 03:00:00 GMT-0700 (PDT)", + (new Date(2014, 2, 9, 3, 0)).toString()); + assertEquals("Sun, 09 Mar 2014 10:00:00 GMT", + (new Date(2014, 2, 9, 3, 0)).toUTCString()); + assertEquals("Sun Mar 09 2014 03:59:00 GMT-0700 (PDT)", + (new Date(2014, 2, 9, 3, 59)).toString()); + assertEquals("Sun, 09 Mar 2014 10:59:00 GMT", + (new Date(2014, 2, 9, 3, 59)).toUTCString()); + assertEquals("Sun Mar 09 2014 04:00:00 GMT-0700 (PDT)", + (new Date(2014, 2, 9, 4, 0)).toString()); + assertEquals("Sun, 09 Mar 2014 11:00:00 GMT", + (new Date(2014, 2, 9, 4, 0)).toUTCString()); + assertEquals("Sat Nov 01 2014 22:59:00 GMT-0700 (PDT)", + (new Date(2014, 10, 1, 22, 59)).toString()); + assertEquals("Sun, 02 Nov 2014 05:59:00 GMT", + (new Date(2014, 10, 1, 22, 59)).toUTCString()); + assertEquals("Sat Nov 01 2014 23:00:00 GMT-0700 (PDT)", + (new Date(2014, 10, 1, 23, 0)).toString()); + assertEquals("Sun, 02 Nov 2014 06:00:00 GMT", + (new Date(2014, 10, 1, 23, 0)).toUTCString()); + assertEquals("Sat Nov 01 2014 23:59:00 GMT-0700 (PDT)", + (new Date(2014, 10, 1, 23, 59)).toString()); + assertEquals("Sun, 02 Nov 2014 06:59:00 GMT", + (new Date(2014, 10, 1, 23, 59)).toUTCString()); + assertEquals("Sun Nov 02 2014 00:00:00 GMT-0700 (PDT)", + (new Date(2014, 10, 2, 0, 0)).toString()); + assertEquals("Sun, 02 Nov 2014 07:00:00 GMT", + (new Date(2014, 10, 2, 0, 0)).toUTCString()); + assertEquals("Sun Nov 02 2014 00:59:00 GMT-0700 (PDT)", + (new Date(2014, 10, 2, 0, 59)).toString()); + assertEquals("Sun, 02 Nov 2014 07:59:00 GMT", + (new Date(2014, 10, 2, 0, 59)).toUTCString()); + assertEquals("Sun Nov 02 2014 01:00:00 GMT-0700 (PDT)", + (new Date(2014, 10, 2, 1, 0)).toString()); + assertEquals("Sun, 02 Nov 2014 08:00:00 GMT", + (new Date(2014, 10, 2, 1, 0)).toUTCString()); + assertEquals("Sun Nov 02 2014 01:59:00 GMT-0700 (PDT)", + (new Date(2014, 10, 2, 1, 59)).toString()); + assertEquals("Sun, 02 Nov 2014 08:59:00 GMT", + (new Date(2014, 10, 2, 1, 59)).toUTCString()); + assertEquals("Sun Nov 02 2014 02:00:00 GMT-0800 (PST)", + (new Date(2014, 10, 2, 2, 0)).toString()); + assertEquals("Sun, 02 Nov 2014 10:00:00 GMT", + (new Date(2014, 10, 2, 2, 0)).toUTCString()); + assertEquals("Sun Nov 02 2014 02:59:00 GMT-0800 (PST)", + (new Date(2014, 10, 2, 2, 59)).toString()); + assertEquals("Sun, 02 Nov 2014 10:59:00 GMT", + (new Date(2014, 10, 2, 2, 59)).toUTCString()); + assertEquals("Sun Nov 02 2014 03:00:00 GMT-0800 (PST)", + (new Date(2014, 10, 2, 3, 0)).toString()); + assertEquals("Sun, 02 Nov 2014 11:00:00 GMT", + (new Date(2014, 10, 2, 3, 0)).toUTCString()); + assertEquals("Sun Nov 02 2014 03:59:00 GMT-0800 (PST)", + (new Date(2014, 10, 2, 3, 59)).toString()); + assertEquals("Sun, 02 Nov 2014 11:59:00 GMT", + (new Date(2014, 10, 2, 3, 59)).toUTCString()); + assertEquals("Sun Nov 02 2014 04:00:00 GMT-0800 (PST)", + (new Date(2014, 10, 2, 4, 0)).toString()); + assertEquals("Sun, 02 Nov 2014 12:00:00 GMT", + (new Date(2014, 10, 2, 4, 0)).toUTCString()); +} diff --git a/test/webkit/fast/js/Object-getOwnPropertyNames-expected.txt b/test/webkit/fast/js/Object-getOwnPropertyNames-expected.txt index 4fe6742d0..030d7f9c7 100644 --- a/test/webkit/fast/js/Object-getOwnPropertyNames-expected.txt +++ b/test/webkit/fast/js/Object-getOwnPropertyNames-expected.txt @@ -68,7 +68,7 @@ PASS getSortedOwnPropertyNames(Object.prototype) is ['__defineGetter__', '__defi PASS getSortedOwnPropertyNames(Function) is ['arguments', 'caller', 'length', 'name', 'prototype'] PASS getSortedOwnPropertyNames(Function.prototype) is ['apply', 'arguments', 'bind', 'call', 'caller', 'constructor', 'length', 'name', 'toString'] PASS getSortedOwnPropertyNames(Array) is ['arguments', 'caller', 'isArray', 'length', 'name', 'observe', 'prototype', 'unobserve'] -PASS getSortedOwnPropertyNames(Array.prototype) is ['concat', 'constructor', 'entries', 'every', 'filter', 'forEach', 'indexOf', 'join', 'keys', 'lastIndexOf', 'length', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values'] +PASS getSortedOwnPropertyNames(Array.prototype) is ['concat', 'constructor', 'entries', 'every', 'filter', 'forEach', 'indexOf', 'join', 'keys', 'lastIndexOf', 'length', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift'] PASS getSortedOwnPropertyNames(String) is ['arguments', 'caller', 'fromCharCode', 'length', 'name', 'prototype'] PASS getSortedOwnPropertyNames(String.prototype) is ['anchor', 'big', 'blink', 'bold', 'charAt', 'charCodeAt', 'concat', 'constructor', 'fixed', 'fontcolor', 'fontsize', 'indexOf', 'italics', 'lastIndexOf', 'length', 'link', 'localeCompare', 'match', 'normalize', 'replace', 'search', 'slice', 'small', 'split', 'strike', 'sub', 'substr', 'substring', 'sup', 'toLocaleLowerCase', 'toLocaleUpperCase', 'toLowerCase', 'toString', 'toUpperCase', 'trim', 'trimLeft', 'trimRight', 'valueOf'] PASS getSortedOwnPropertyNames(Boolean) is ['arguments', 'caller', 'length', 'name', 'prototype'] diff --git a/test/webkit/fast/js/Object-getOwnPropertyNames.js b/test/webkit/fast/js/Object-getOwnPropertyNames.js index c168c37b0..caa0111fe 100644 --- a/test/webkit/fast/js/Object-getOwnPropertyNames.js +++ b/test/webkit/fast/js/Object-getOwnPropertyNames.js @@ -76,7 +76,7 @@ var expectedPropertyNamesSet = { "Function": "['arguments', 'caller', 'length', 'name', 'prototype']", "Function.prototype": "['apply', 'arguments', 'bind', 'call', 'caller', 'constructor', 'length', 'name', 'toString']", "Array": "['arguments', 'caller', 'isArray', 'length', 'name', 'observe', 'prototype', 'unobserve']", - "Array.prototype": "['concat', 'constructor', 'entries', 'every', 'filter', 'forEach', 'indexOf', 'join', 'keys', 'lastIndexOf', 'length', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values']", + "Array.prototype": "['concat', 'constructor', 'entries', 'every', 'filter', 'forEach', 'indexOf', 'join', 'keys', 'lastIndexOf', 'length', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift']", "String": "['arguments', 'caller', 'fromCharCode', 'length', 'name', 'prototype']", "String.prototype": "['anchor', 'big', 'blink', 'bold', 'charAt', 'charCodeAt', 'concat', 'constructor', 'fixed', 'fontcolor', 'fontsize', 'indexOf', 'italics', 'lastIndexOf', 'length', 'link', 'localeCompare', 'match', 'normalize', 'replace', 'search', 'slice', 'small', 'split', 'strike', 'sub', 'substr', 'substring', 'sup', 'toLocaleLowerCase', 'toLocaleUpperCase', 'toLowerCase', 'toString', 'toUpperCase', 'trim', 'trimLeft', 'trimRight', 'valueOf']", "Boolean": "['arguments', 'caller', 'length', 'name', 'prototype']", diff --git a/tools/whitespace.txt b/tools/whitespace.txt index 925f47ad4..305e8ed92 100644 --- a/tools/whitespace.txt +++ b/tools/whitespace.txt @@ -5,4 +5,4 @@ Try to write something funny. And please don't add trailing whitespace. A Smi walks into a bar and says: "I'm so deoptimized today!" The doubles heard this and started to unbox. -The Smi looked at them when a crazy v8-autoroll account showed up............ +The Smi looked at them when a crazy v8-autoroll account showed up.............. |