| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 var assert = requireNative('assert'); | 5 var assert = requireNative('assert'); |
| 6 var AssertTrue = assert.AssertTrue; | 6 var AssertTrue = assert.AssertTrue; |
| 7 var AssertFalse = assert.AssertFalse; | 7 var AssertFalse = assert.AssertFalse; |
| 8 var utils = require('utils'); | 8 var utils = require('utils'); |
| 9 | 9 |
| 10 function testSuperClass() { | 10 function testSuperClass() { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 } | 22 } |
| 23 | 23 |
| 24 SubClassImpl.prototype = { | 24 SubClassImpl.prototype = { |
| 25 __proto__: SuperClassImpl.prototype, | 25 __proto__: SuperClassImpl.prototype, |
| 26 attrA: 'aSub', | 26 attrA: 'aSub', |
| 27 attrC: 'cSub', | 27 attrC: 'cSub', |
| 28 func: function() { return 'overridden'; }, | 28 func: function() { return 'overridden'; }, |
| 29 subFunc: function() { return 'subFunc'; } | 29 subFunc: function() { return 'subFunc'; } |
| 30 }; | 30 }; |
| 31 | 31 |
| 32 var SuperClass = utils.expose('SuperClass', | 32 function SuperClass() { |
| 33 SuperClassImpl, | 33 privates(SuperClass).constructPrivate(this, arguments); |
| 34 { functions: ['func', 'superFunc'], | 34 } |
| 35 properties: ['attrA', 'attrB'] }); | 35 utils.expose(SuperClass, SuperClassImpl, { |
| 36 functions: ['func', 'superFunc'], |
| 37 properties: ['attrA', 'attrB'], |
| 38 }); |
| 36 | 39 |
| 37 var SubClass = utils.expose('SubClass', | 40 function SubClass() { |
| 38 SubClassImpl, | 41 privates(SubClass).constructPrivate(this, arguments); |
| 39 { superclass: SuperClass, | 42 } |
| 40 functions: ['subFunc'], | 43 utils.expose(SubClass, SubClassImpl, { |
| 41 properties: ['attrC'] }); | 44 superclass: SuperClass, |
| 45 functions: ['subFunc'], |
| 46 properties: ['attrC'], |
| 47 }); |
| 42 | 48 |
| 43 var supe = new SuperClass(); | 49 var supe = new SuperClass(); |
| 44 AssertTrue(supe.attrA == 'aSuper'); | 50 AssertTrue(supe.attrA == 'aSuper'); |
| 45 AssertTrue(supe.attrB == 'bSuper'); | 51 AssertTrue(supe.attrB == 'bSuper'); |
| 46 AssertFalse('attrC' in supe); | 52 AssertFalse('attrC' in supe); |
| 47 AssertTrue(supe.func() == 'func'); | 53 AssertTrue(supe.func() == 'func'); |
| 48 AssertTrue('superFunc' in supe); | 54 AssertTrue('superFunc' in supe); |
| 49 AssertTrue(supe.superFunc() == 'superFunc'); | 55 AssertTrue(supe.superFunc() == 'superFunc'); |
| 50 AssertFalse('subFunc' in supe); | 56 AssertFalse('subFunc' in supe); |
| 51 AssertTrue(supe instanceof SuperClass); | 57 AssertTrue(supe instanceof SuperClass); |
| 52 | 58 |
| 53 var sub = new SubClass(); | 59 var sub = new SubClass(); |
| 54 AssertTrue(sub.attrA == 'aSub'); | 60 AssertTrue(sub.attrA == 'aSub'); |
| 55 AssertTrue(sub.attrB == 'bSuper'); | 61 AssertTrue(sub.attrB == 'bSuper'); |
| 56 AssertTrue(sub.attrC == 'cSub'); | 62 AssertTrue(sub.attrC == 'cSub'); |
| 57 AssertTrue(sub.func() == 'overridden'); | 63 AssertTrue(sub.func() == 'overridden'); |
| 58 AssertTrue(sub.superFunc() == 'superFunc'); | 64 AssertTrue(sub.superFunc() == 'superFunc'); |
| 59 AssertTrue('subFunc' in sub); | 65 AssertTrue('subFunc' in sub); |
| 60 AssertTrue(sub.subFunc() == 'subFunc'); | 66 AssertTrue(sub.subFunc() == 'subFunc'); |
| 61 AssertTrue(sub instanceof SuperClass); | 67 AssertTrue(sub instanceof SuperClass); |
| 62 AssertTrue(sub instanceof SubClass); | 68 AssertTrue(sub instanceof SubClass); |
| 63 | 69 |
| 64 function SubSubClassImpl() {} | 70 function SubSubClassImpl() {} |
| 65 SubSubClassImpl.prototype = Object.create(SubClassImpl.prototype); | 71 SubSubClassImpl.prototype = Object.create(SubClassImpl.prototype); |
| 66 SubSubClassImpl.prototype.subSubFunc = function() { return 'subsub'; } | 72 SubSubClassImpl.prototype.subSubFunc = function() { return 'subsub'; }; |
| 67 | 73 |
| 68 var SubSubClass = utils.expose('SubSubClass', | 74 function SubSubClass() { |
| 69 SubSubClassImpl, | 75 privates(SubSubClass).constructPrivate(this, arguments); |
| 70 { superclass: SubClass, | 76 } |
| 71 functions: ['subSubFunc'] }); | 77 utils.expose(SubSubClass, SubSubClassImpl, { |
| 78 superclass: SubClass, |
| 79 functions: ['subSubFunc'], |
| 80 }); |
| 81 |
| 72 var subsub = new SubSubClass(); | 82 var subsub = new SubSubClass(); |
| 73 AssertTrue(subsub.attrA == 'aSub'); | 83 AssertTrue(subsub.attrA == 'aSub'); |
| 74 AssertTrue(subsub.attrB == 'bSuper'); | 84 AssertTrue(subsub.attrB == 'bSuper'); |
| 75 AssertTrue(subsub.attrC == 'cSub'); | 85 AssertTrue(subsub.attrC == 'cSub'); |
| 76 AssertTrue(subsub.func() == 'overridden'); | 86 AssertTrue(subsub.func() == 'overridden'); |
| 77 AssertTrue(subsub.superFunc() == 'superFunc'); | 87 AssertTrue(subsub.superFunc() == 'superFunc'); |
| 78 AssertTrue(subsub.subFunc() == 'subFunc'); | 88 AssertTrue(subsub.subFunc() == 'subFunc'); |
| 79 AssertTrue(subsub.subSubFunc() == 'subsub'); | 89 AssertTrue(subsub.subSubFunc() == 'subsub'); |
| 80 AssertTrue(subsub instanceof SuperClass); | 90 AssertTrue(subsub instanceof SuperClass); |
| 81 AssertTrue(subsub instanceof SubClass); | 91 AssertTrue(subsub instanceof SubClass); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 }).catch(function(e) { | 138 }).catch(function(e) { |
| 129 AssertTrue(e.message == 'error message'); | 139 AssertTrue(e.message == 'error message'); |
| 130 }); | 140 }); |
| 131 } | 141 } |
| 132 | 142 |
| 133 exports.testSuperClass = testSuperClass; | 143 exports.testSuperClass = testSuperClass; |
| 134 exports.testPromiseNoResult = testPromiseNoResult; | 144 exports.testPromiseNoResult = testPromiseNoResult; |
| 135 exports.testPromiseOneResult = testPromiseOneResult; | 145 exports.testPromiseOneResult = testPromiseOneResult; |
| 136 exports.testPromiseTwoResults = testPromiseTwoResults; | 146 exports.testPromiseTwoResults = testPromiseTwoResults; |
| 137 exports.testPromiseError = testPromiseError; | 147 exports.testPromiseError = testPromiseError; |
| OLD | NEW |