blob: 26d96d448d0d6c39352c9e34ad1cbed62d53f6ec [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001// Copyright 2015 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5"use strict";
6
7function getTypeName(receiver) {
8 Error.prepareStackTrace = function(e, stack) { return stack; }
9 var stack = (function() { return new Error().stack; }).call(receiver);
10 Error.prepareStackTrace = undefined;
11 return stack[0].getTypeName();
12}
13
14assertNull(getTypeName(undefined));
15assertNull(getTypeName(null));
16assertEquals("Number", getTypeName(1));
17assertEquals("String", getTypeName(""));
18assertEquals("Boolean", getTypeName(false));
19assertEquals("Object", getTypeName({}));
20assertEquals("Array", getTypeName([]));
21assertEquals("Custom", getTypeName(new (function Custom(){})()));