OLD | NEW |
1 // Copyright 2008 the V8 project authors. All rights reserved. | 1 // Copyright 2008 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 2196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2207 return "*"; | 2207 return "*"; |
2208 switch (typeof x) { | 2208 switch (typeof x) { |
2209 case "undefined": | 2209 case "undefined": |
2210 return "undefined"; | 2210 return "undefined"; |
2211 case "boolean": | 2211 case "boolean": |
2212 case "number": | 2212 case "number": |
2213 case "function": | 2213 case "function": |
2214 return x.toString(); | 2214 return x.toString(); |
2215 case "string": | 2215 case "string": |
2216 return "\"" + x.toString() + "\""; | 2216 return "\"" + x.toString() + "\""; |
2217 // TODO(rossberg): add symbol case | 2217 case "symbol": |
| 2218 return "Symbol(" + (x.name ? Stringify(x.name, depth) : "") + ")" |
2218 case "object": | 2219 case "object": |
2219 if (x === null) return "null"; | 2220 if (x === null) return "null"; |
2220 if (x.constructor && x.constructor.name === "Array") { | 2221 if (x.constructor && x.constructor.name === "Array") { |
2221 var elems = []; | 2222 var elems = []; |
2222 for (var i = 0; i < x.length; ++i) { | 2223 for (var i = 0; i < x.length; ++i) { |
2223 elems.push( | 2224 elems.push( |
2224 {}.hasOwnProperty.call(x, i) ? Stringify(x[i], depth - 1) : ""); | 2225 {}.hasOwnProperty.call(x, i) ? Stringify(x[i], depth - 1) : ""); |
2225 } | 2226 } |
2226 return "[" + elems.join(", ") + "]"; | 2227 return "[" + elems.join(", ") + "]"; |
2227 } | 2228 } |
(...skipping 15 matching lines...) Expand all Loading... |
2243 if ("set" in desc) { | 2244 if ("set" in desc) { |
2244 var setter = desc.set.toString(); | 2245 var setter = desc.set.toString(); |
2245 props.push("set " + name + setter.slice(setter.indexOf('('))); | 2246 props.push("set " + name + setter.slice(setter.indexOf('('))); |
2246 } | 2247 } |
2247 } | 2248 } |
2248 return "{" + props.join(", ") + "}"; | 2249 return "{" + props.join(", ") + "}"; |
2249 default: | 2250 default: |
2250 return "[crazy non-standard shit]"; | 2251 return "[crazy non-standard shit]"; |
2251 } | 2252 } |
2252 } | 2253 } |
OLD | NEW |