OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 841 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
852 %_CallFunction(this.receiver, | 852 %_CallFunction(this.receiver, |
853 ownName, | 853 ownName, |
854 ObjectLookupSetter) === this.fun || | 854 ObjectLookupSetter) === this.fun || |
855 this.receiver[ownName] === this.fun)) { | 855 this.receiver[ownName] === this.fun)) { |
856 // To handle DontEnum properties we guess that the method has | 856 // To handle DontEnum properties we guess that the method has |
857 // the same name as the function. | 857 // the same name as the function. |
858 return ownName; | 858 return ownName; |
859 } | 859 } |
860 var name = null; | 860 var name = null; |
861 for (var prop in this.receiver) { | 861 for (var prop in this.receiver) { |
862 if (this.receiver.__lookupGetter__(prop) === this.fun || | 862 if (%_CallFunction(this.receiver, prop, ObjectLookupGetter) === this.fun || |
863 this.receiver.__lookupSetter__(prop) === this.fun || | 863 %_CallFunction(this.receiver, prop, ObjectLookupSetter) === this.fun || |
864 (!this.receiver.__lookupGetter__(prop) && | 864 (!%_CallFunction(this.receiver, prop, ObjectLookupGetter) && |
865 this.receiver[prop] === this.fun)) { | 865 this.receiver[prop] === this.fun)) { |
866 // If we find more than one match bail out to avoid confusion. | 866 // If we find more than one match bail out to avoid confusion. |
867 if (name) { | 867 if (name) { |
868 return null; | 868 return null; |
869 } | 869 } |
870 name = prop; | 870 name = prop; |
871 } | 871 } |
872 } | 872 } |
873 if (name) { | 873 if (name) { |
874 return name; | 874 return name; |
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1259 throw e; | 1259 throw e; |
1260 } | 1260 } |
1261 } | 1261 } |
1262 | 1262 |
1263 | 1263 |
1264 InstallFunctions($Error.prototype, DONT_ENUM, ['toString', ErrorToString]); | 1264 InstallFunctions($Error.prototype, DONT_ENUM, ['toString', ErrorToString]); |
1265 | 1265 |
1266 // Boilerplate for exceptions for stack overflows. Used from | 1266 // Boilerplate for exceptions for stack overflows. Used from |
1267 // Isolate::StackOverflow(). | 1267 // Isolate::StackOverflow(). |
1268 var kStackOverflowBoilerplate = MakeRangeError('stack_overflow', []); | 1268 var kStackOverflowBoilerplate = MakeRangeError('stack_overflow', []); |
OLD | NEW |