OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project 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 'use strict'; | 5 'use strict'; |
6 | 6 |
7 // This file relies on the fact that the following declaration has been made | 7 // This file relies on the fact that the following declaration has been made |
8 // in runtime.js and symbol.js: | 8 // in runtime.js and symbol.js: |
9 // var $Object = global.Object; | 9 // var $Object = global.Object; |
10 // var $Symbol = global.Symbol; | 10 // var $Symbol = global.Symbol; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 // TODO(dslomov, caitp): Move to symbol.js when shipping | 49 // TODO(dslomov, caitp): Move to symbol.js when shipping |
50 "toStringTag", symbolToStringTag | 50 "toStringTag", symbolToStringTag |
51 )); | 51 )); |
52 } | 52 } |
53 | 53 |
54 HarmonyToStringExtendSymbolPrototype(); | 54 HarmonyToStringExtendSymbolPrototype(); |
55 | 55 |
56 function HarmonyToStringExtendObjectPrototype() { | 56 function HarmonyToStringExtendObjectPrototype() { |
57 %CheckIsBootstrapping(); | 57 %CheckIsBootstrapping(); |
58 | 58 |
| 59 // Can't use InstallFunctions() because will fail in Debug mode. |
| 60 // Emulate InstallFunctions() here. |
| 61 %FunctionSetName(ObjectToStringHarmony, "toString"); |
| 62 %FunctionRemovePrototype(ObjectToStringHarmony); |
| 63 %SetNativeFlag(ObjectToStringHarmony); |
| 64 |
59 // Set up the non-enumerable functions on the Array prototype object. | 65 // Set up the non-enumerable functions on the Array prototype object. |
60 var desc = ToPropertyDescriptor({ | 66 var desc = ToPropertyDescriptor({ |
61 value: ObjectToStringHarmony | 67 value: ObjectToStringHarmony |
62 }); | 68 }); |
63 DefineOwnProperty($Object.prototype, "toString", desc, false); | 69 DefineOwnProperty($Object.prototype, "toString", desc, false); |
| 70 |
| 71 %ToFastProperties($Object.prototype); |
64 } | 72 } |
65 | 73 |
66 HarmonyToStringExtendObjectPrototype(); | 74 HarmonyToStringExtendObjectPrototype(); |
OLD | NEW |