Commit d2626be5 authored by lrn@chromium.org's avatar lrn@chromium.org

Prune some internal objects' prototypes.

Review URL: http://codereview.chromium.org/7703005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent d4a6b4ac
// Copyright 2006-2008 the V8 project authors. All rights reserved.
// Copyright 2011 the V8 project authors. All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
......@@ -57,7 +57,7 @@ function FormatString(format, message) {
for (var i = 0; i < format.length; i++) {
var str = format[i];
for (arg_num = 0; arg_num < kReplacementMarkers.length; arg_num++) {
if (format[i] !== kReplacementMarkers[arg_num]) continue;
if (str !== kReplacementMarkers[arg_num]) continue;
try {
str = ToDetailString(args[arg_num]);
} catch (e) {
......@@ -100,7 +100,8 @@ function ToStringCheckErrorObject(obj) {
function ToDetailString(obj) {
if (obj != null && IS_OBJECT(obj) && obj.toString === $Object.prototype.toString) {
if (obj != null && IS_OBJECT(obj) &&
obj.toString === $Object.prototype.toString) {
var constructor = obj.constructor;
if (!constructor) return ToStringCheckErrorObject(obj);
var constructorName = constructor.name;
......@@ -560,6 +561,7 @@ function SourceLocation(script, position, line, column, start, end) {
this.end = end;
}
SourceLocation.prototype.__proto__ = null;
const kLineLengthLimit = 78;
......@@ -649,6 +651,7 @@ function SourceSlice(script, from_line, to_line, from_position, to_position) {
this.to_position = to_position;
}
SourceSlice.prototype.__proto__ = null;
/**
* Get the source text for a SourceSlice
......@@ -716,23 +719,28 @@ function CallSite(receiver, fun, pos) {
this.pos = pos;
}
CallSite.prototype.__proto__ = null;
CallSite.prototype.getThis = function () {
return this.receiver;
};
CallSite.prototype.getTypeName = function () {
var constructor = this.receiver.constructor;
if (!constructor)
if (!constructor) {
return %_CallFunction(this.receiver, ObjectToString);
}
var constructorName = constructor.name;
if (!constructorName)
if (!constructorName) {
return %_CallFunction(this.receiver, ObjectToString);
}
return constructorName;
};
CallSite.prototype.isToplevel = function () {
if (this.receiver == null)
if (this.receiver == null) {
return true;
}
return IS_GLOBAL(this.receiver);
};
......@@ -765,8 +773,9 @@ CallSite.prototype.getFunctionName = function () {
}
// Maybe this is an evaluation?
var script = %FunctionGetScript(this.fun);
if (script && script.compilation_type == COMPILATION_TYPE_EVAL)
if (script && script.compilation_type == COMPILATION_TYPE_EVAL) {
return "eval";
}
return null;
};
......@@ -788,13 +797,15 @@ CallSite.prototype.getMethodName = function () {
this.receiver.__lookupSetter__(prop) === this.fun ||
(!this.receiver.__lookupGetter__(prop) && this.receiver[prop] === this.fun)) {
// If we find more than one match bail out to avoid confusion.
if (name)
if (name) {
return null;
}
name = prop;
}
}
if (name)
if (name) {
return name;
}
return null;
};
......@@ -804,8 +815,9 @@ CallSite.prototype.getFileName = function () {
};
CallSite.prototype.getLineNumber = function () {
if (this.pos == -1)
if (this.pos == -1) {
return null;
}
var script = %FunctionGetScript(this.fun);
var location = null;
if (script) {
......@@ -815,8 +827,9 @@ CallSite.prototype.getLineNumber = function () {
};
CallSite.prototype.getColumnNumber = function () {
if (this.pos == -1)
if (this.pos == -1) {
return null;
}
var script = %FunctionGetScript(this.fun);
var location = null;
if (script) {
......@@ -836,15 +849,17 @@ CallSite.prototype.getPosition = function () {
CallSite.prototype.isConstructor = function () {
var constructor = this.receiver ? this.receiver.constructor : null;
if (!constructor)
if (!constructor) {
return false;
}
return this.fun === constructor;
};
function FormatEvalOrigin(script) {
var sourceURL = script.nameOrSourceURL();
if (sourceURL)
if (sourceURL) {
return sourceURL;
}
var eval_origin = "eval at ";
if (script.eval_from_function_name) {
......@@ -1042,8 +1057,9 @@ function DefineError(f) {
function captureStackTrace(obj, cons_opt) {
var stackTraceLimit = $Error.stackTraceLimit;
if (!stackTraceLimit || !IS_NUMBER(stackTraceLimit)) return;
if (stackTraceLimit < 0 || stackTraceLimit > 10000)
if (stackTraceLimit < 0 || stackTraceLimit > 10000) {
stackTraceLimit = 10000;
}
var raw_stack = %CollectStackTrace(cons_opt
? cons_opt
: captureStackTrace, stackTraceLimit);
......@@ -1117,8 +1133,10 @@ function errorToString() {
} catch(e) {
// If this error message was encountered already return the empty
// string for it instead of recursively formatting it.
if (isCyclicErrorMarker(e)) return '';
else throw e;
if (isCyclicErrorMarker(e)) {
return '';
}
throw e;
}
}
......
......@@ -914,6 +914,8 @@ function ReplaceResultBuilder(str) {
this.special_string = str;
}
ReplaceResultBuilder.prototype.__proto__ = null;
ReplaceResultBuilder.prototype.add = function(str) {
str = TO_STRING_INLINE(str);
......
......@@ -462,6 +462,7 @@ function PropertyDescriptor() {
}
PropertyDescriptor.prototype.__proto__ = null;
PropertyDescriptor.prototype.toString = function() {
return "[object PropertyDescriptor]";
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment