| OLD | NEW |
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 assertEquals(0, f.length); | 55 assertEquals(0, f.length); |
| 56 | 56 |
| 57 // Use a different bound object. | 57 // Use a different bound object. |
| 58 var obj = {x: 42, y: 43}; | 58 var obj = {x: 42, y: 43}; |
| 59 // Values that would normally be in "this" when calling f_bound_this. | 59 // Values that would normally be in "this" when calling f_bound_this. |
| 60 var x = 42; | 60 var x = 42; |
| 61 var y = 44; | 61 var y = 44; |
| 62 | 62 |
| 63 function f_bound_this(z) { | 63 function f_bound_this(z) { |
| 64 return z + this.y - this.x; | 64 return z + this.y - this.x; |
| 65 } | 65 } |
| 66 | 66 |
| 67 assertEquals(3, f_bound_this(1)) | 67 assertEquals(3, f_bound_this(1)) |
| 68 f = f_bound_this.bind(obj); | 68 f = f_bound_this.bind(obj); |
| 69 assertEquals(2, f(1)); | 69 assertEquals(2, f(1)); |
| 70 assertEquals(1, f.length); | 70 assertEquals(1, f.length); |
| 71 | 71 |
| 72 f = f_bound_this.bind(obj, 2); | 72 f = f_bound_this.bind(obj, 2); |
| 73 assertEquals(3, f()); | 73 assertEquals(3, f()); |
| 74 assertEquals(0, f.length); | 74 assertEquals(0, f.length); |
| 75 | 75 |
| 76 // Test chained binds. | 76 // Test chained binds. |
| 77 | 77 |
| 78 // When only giving the thisArg, any number of binds should have | 78 // When only giving the thisArg, any number of binds should have |
| 79 // the same effect. | 79 // the same effect. |
| 80 f = foo.bind(foo); | 80 f = foo.bind(foo); |
| 81 assertEquals(3, f(1, 1, 1)); | 81 assertEquals(3, f(1, 1, 1)); |
| 82 f = foo.bind(foo).bind(foo).bind(foo).bind(foo); | 82 f = foo.bind(foo).bind(foo).bind(foo).bind(foo); |
| 83 assertEquals(3, f(1, 1, 1)); | 83 assertEquals(3, f(1, 1, 1)); |
| 84 assertEquals(3, f.length); | 84 assertEquals(3, f.length); |
| 85 | 85 |
| 86 // Giving bound parameters should work at any place in the chain. | 86 // Giving bound parameters should work at any place in the chain. |
| 87 f = foo.bind(foo, 1).bind(foo).bind(foo).bind(foo); | 87 f = foo.bind(foo, 1).bind(foo).bind(foo).bind(foo); |
| 88 assertEquals(3, f(1, 1)); | 88 assertEquals(3, f(1, 1)); |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 | 174 |
| 175 f = bar.bind(bar, 1).bind(bar, 2).bind(bar, 3); | 175 f = bar.bind(bar, 1).bind(bar, 2).bind(bar, 3); |
| 176 obj2 = new f(); | 176 obj2 = new f(); |
| 177 assertEquals(1, obj2.x); | 177 assertEquals(1, obj2.x); |
| 178 assertEquals(2, obj2.y); | 178 assertEquals(2, obj2.y); |
| 179 assertEquals(3, obj2.z); | 179 assertEquals(3, obj2.z); |
| 180 | 180 |
| 181 // Test instanceof obj2 is bar, not f. | 181 // Test instanceof obj2 is bar, not f. |
| 182 assertTrue(obj2 instanceof bar); | 182 assertTrue(obj2 instanceof bar); |
| 183 assertFalse(obj2 instanceof f); | 183 assertFalse(obj2 instanceof f); |
| 184 | |
| OLD | NEW |