| Index: test/mjsunit/harmony/object-literals-method.js
|
| diff --git a/test/mjsunit/harmony/object-literals-method.js b/test/mjsunit/harmony/object-literals-method.js
|
| deleted file mode 100644
|
| index d2879ada8f7ca59d8ecb7ea515cdfb8459ac4243..0000000000000000000000000000000000000000
|
| --- a/test/mjsunit/harmony/object-literals-method.js
|
| +++ /dev/null
|
| @@ -1,314 +0,0 @@
|
| -// 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.
|
| -
|
| -// Flags: --harmony-object-literals --allow-natives-syntax
|
| -
|
| -
|
| -(function TestBasics() {
|
| - var object = {
|
| - method() {
|
| - return 42;
|
| - }
|
| - };
|
| - assertEquals(42, object.method());
|
| -})();
|
| -
|
| -
|
| -(function TestThis() {
|
| - var object = {
|
| - method() {
|
| - assertEquals(object, this);
|
| - }
|
| - };
|
| - object.method();
|
| -})();
|
| -
|
| -
|
| -(function TestDescriptor() {
|
| - var object = {
|
| - method() {
|
| - return 42;
|
| - }
|
| - };
|
| -
|
| - var desc = Object.getOwnPropertyDescriptor(object, 'method');
|
| - assertTrue(desc.enumerable);
|
| - assertTrue(desc.configurable);
|
| - assertTrue(desc.writable);
|
| - assertEquals('function', typeof desc.value);
|
| -
|
| - assertEquals(42, desc.value());
|
| -})();
|
| -
|
| -
|
| -(function TestProto() {
|
| - var object = {
|
| - method() {}
|
| - };
|
| -
|
| - assertEquals(Function.prototype, Object.getPrototypeOf(object.method));
|
| -})();
|
| -
|
| -
|
| -(function TestNotConstructable() {
|
| - var object = {
|
| - method() {}
|
| - };
|
| -
|
| - assertThrows(function() {
|
| - new object.method;
|
| - });
|
| -})();
|
| -
|
| -
|
| -(function TestFunctionName() {
|
| - var object = {
|
| - method() {},
|
| - 1() {},
|
| - 2.0() {}
|
| - };
|
| - var f = object.method;
|
| - assertEquals('method', f.name);
|
| - var g = object[1];
|
| - assertEquals('1', g.name);
|
| - var h = object[2];
|
| - assertEquals('2', h.name);
|
| -})();
|
| -
|
| -
|
| -(function TestNoBinding() {
|
| - var method = 'local';
|
| - var calls = 0;
|
| - var object = {
|
| - method() {
|
| - calls++;
|
| - assertEquals('local', method);
|
| - }
|
| - };
|
| - object.method();
|
| - assertEquals(1, calls);
|
| -})();
|
| -
|
| -
|
| -(function TestNoPrototype() {
|
| - var object = {
|
| - method() {}
|
| - };
|
| - var f = object.method;
|
| - assertFalse(f.hasOwnProperty('prototype'));
|
| - assertEquals(undefined, f.prototype);
|
| -
|
| - f.prototype = 42;
|
| - assertEquals(42, f.prototype);
|
| -})();
|
| -
|
| -
|
| -(function TestNoRestrictedPropertiesStrict() {
|
| - var obj = {
|
| - method() { "use strict"; }
|
| - };
|
| - assertFalse(obj.method.hasOwnProperty("arguments"));
|
| - assertThrows(function() { return obj.method.arguments; }, TypeError);
|
| - assertThrows(function() { obj.method.arguments = {}; }, TypeError);
|
| -
|
| - assertFalse(obj.method.hasOwnProperty("caller"));
|
| - assertThrows(function() { return obj.method.caller; }, TypeError);
|
| - assertThrows(function() { obj.method.caller = {}; }, TypeError);
|
| -})();
|
| -
|
| -
|
| -(function TestNoRestrictedPropertiesSloppy() {
|
| - var obj = {
|
| - method() {}
|
| - };
|
| - assertFalse(obj.method.hasOwnProperty("arguments"));
|
| - assertThrows(function() { return obj.method.arguments; }, TypeError);
|
| - assertThrows(function() { obj.method.arguments = {}; }, TypeError);
|
| -
|
| - assertFalse(obj.method.hasOwnProperty("caller"));
|
| - assertThrows(function() { return obj.method.caller; }, TypeError);
|
| - assertThrows(function() { obj.method.caller = {}; }, TypeError);
|
| -})();
|
| -
|
| -
|
| -(function TestToString() {
|
| - var object = {
|
| - method() { 42; }
|
| - };
|
| - assertEquals('method() { 42; }', object.method.toString());
|
| -})();
|
| -
|
| -
|
| -(function TestOptimized() {
|
| - var object = {
|
| - method() { return 42; }
|
| - };
|
| - assertEquals(42, object.method());
|
| - assertEquals(42, object.method());
|
| - %OptimizeFunctionOnNextCall(object.method);
|
| - assertEquals(42, object.method());
|
| - assertFalse(object.method.hasOwnProperty('prototype'));
|
| -})();
|
| -
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -
|
| -
|
| -var GeneratorFunction = function*() {}.__proto__.constructor;
|
| -var GeneratorPrototype = Object.getPrototypeOf(function*() {}).prototype;
|
| -
|
| -
|
| -function assertIteratorResult(value, done, result) {
|
| - assertEquals({value: value, done: done}, result);
|
| -}
|
| -
|
| -
|
| -(function TestGeneratorBasics() {
|
| - var object = {
|
| - *method() {
|
| - yield 1;
|
| - }
|
| - };
|
| - var g = object.method();
|
| - assertIteratorResult(1, false, g.next());
|
| - assertIteratorResult(undefined, true, g.next());
|
| -})();
|
| -
|
| -
|
| -(function TestGeneratorThis() {
|
| - var object = {
|
| - *method() {
|
| - yield this;
|
| - }
|
| - };
|
| - var g = object.method();
|
| - assertIteratorResult(object, false, g.next());
|
| - assertIteratorResult(undefined, true, g.next());
|
| -})();
|
| -
|
| -
|
| -(function TestGeneratorSymbolIterator() {
|
| - var object = {
|
| - *method() {}
|
| - };
|
| - var g = object.method();
|
| - assertEquals(g, g[Symbol.iterator]());
|
| -})();
|
| -
|
| -
|
| -(function TestGeneratorDescriptor() {
|
| - var object = {
|
| - *method() {
|
| - yield 1;
|
| - }
|
| - };
|
| -
|
| - var desc = Object.getOwnPropertyDescriptor(object, 'method');
|
| - assertTrue(desc.enumerable);
|
| - assertTrue(desc.configurable);
|
| - assertTrue(desc.writable);
|
| - assertEquals('function', typeof desc.value);
|
| -
|
| - var g = desc.value();
|
| - assertIteratorResult(1, false, g.next());
|
| - assertIteratorResult(undefined, true, g.next());
|
| -})();
|
| -
|
| -
|
| -(function TestGeneratorPrototypeDescriptor() {
|
| - var object = {
|
| - *method() {}
|
| - };
|
| -
|
| - var desc = Object.getOwnPropertyDescriptor(object.method, 'prototype');
|
| - assertFalse(desc.enumerable);
|
| - assertFalse(desc.configurable);
|
| - assertTrue(desc.writable);
|
| - assertEquals(GeneratorPrototype, Object.getPrototypeOf(desc.value));
|
| -})();
|
| -
|
| -
|
| -(function TestGeneratorProto() {
|
| - var object = {
|
| - *method() {}
|
| - };
|
| -
|
| - assertEquals(GeneratorFunction.prototype,
|
| - Object.getPrototypeOf(object.method));
|
| -})();
|
| -
|
| -
|
| -(function TestGeneratorConstructable() {
|
| - var object = {
|
| - *method() {
|
| - yield 1;
|
| - }
|
| - };
|
| -
|
| - var g = new object.method();
|
| - assertIteratorResult(1, false, g.next());
|
| - assertIteratorResult(undefined, true, g.next());
|
| -})();
|
| -
|
| -
|
| -(function TestGeneratorName() {
|
| - var object = {
|
| - *method() {},
|
| - *1() {},
|
| - *2.0() {}
|
| - };
|
| - var f = object.method;
|
| - assertEquals('method', f.name);
|
| - var g = object[1];
|
| - assertEquals('1', g.name);
|
| - var h = object[2];
|
| - assertEquals('2', h.name);
|
| -})();
|
| -
|
| -
|
| -(function TestGeneratorNoBinding() {
|
| - var method = 'local';
|
| - var calls = 0;
|
| - var object = {
|
| - *method() {
|
| - calls++;
|
| - assertEquals('local', method);
|
| - }
|
| - };
|
| - var g = object.method();
|
| - assertIteratorResult(undefined, true, g.next());
|
| - assertEquals(1, calls);
|
| -})();
|
| -
|
| -
|
| -(function TestGeneratorToString() {
|
| - var object = {
|
| - *method() { yield 1; }
|
| - };
|
| - assertEquals('*method() { yield 1; }', object.method.toString());
|
| -})();
|
| -
|
| -
|
| -(function TestProtoName() {
|
| - var object = {
|
| - __proto__() {
|
| - return 1;
|
| - }
|
| - };
|
| - assertEquals(Object.prototype, Object.getPrototypeOf(object));
|
| - assertEquals(1, object.__proto__());
|
| -})();
|
| -
|
| -
|
| -(function TestProtoName2() {
|
| - var p = {};
|
| - var object = {
|
| - __proto__() {
|
| - return 1;
|
| - },
|
| - __proto__: p
|
| - };
|
| - assertEquals(p, Object.getPrototypeOf(object));
|
| - assertEquals(1, object.__proto__());
|
| -})();
|
|
|