Reviewers: Rico,

Description:
Add defaults on some internal objects' prototypes.


Please review this at http://codereview.chromium.org/7703005/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/messages.js
  M src/string.js
  M src/v8natives.js


Index: src/messages.js
diff --git a/src/messages.js b/src/messages.js
index a6305072b73b080da8403ff2477dda71d8d69555..071851a80efa79dc903ce6d0bfc58bb3ebd0a4e5 100644
--- a/src/messages.js
+++ b/src/messages.js
@@ -1,4 +1,4 @@
-// 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,13 @@ function SourceLocation(script, position, line, column, start, end) {
   this.end = end;
 }

+SourceLocation.prototype.script = null;
+SourceLocation.prototype.position = null;
+SourceLocation.prototype.line = null;
+SourceLocation.prototype.column = null;
+SourceLocation.prototype.start = null;
+SourceLocation.prototype.end = null;
+

 const kLineLengthLimit = 78;

@@ -649,6 +657,12 @@ function SourceSlice(script, from_line, to_line, from_position, to_position) {
   this.to_position = to_position;
 }

+SourceSlice.prototype.script = null;
+SourceSlice.prototype.from_line = null;
+SourceSlice.prototype.to_line = null;
+SourceSlice.prototype.from_position = null;
+SourceSlice.prototype.to_position = null;
+

 /**
  * Get the source text for a SourceSlice
@@ -716,23 +730,30 @@ function CallSite(receiver, fun, pos) {
   this.pos = pos;
 }

+CallSite.prototype.receiver = null;
+CallSite.prototype.fun = null;
+CallSite.prototype.pos = 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 +786,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 +810,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 +828,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 +840,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 +862,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 +1070,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 +1146,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;
   }
 }

Index: src/string.js
diff --git a/src/string.js b/src/string.js
index 50531822be15f65ec9718c208de357252274c4cb..ff8763352a2bc4f07ab4ef41c182b96f37d38931 100644
--- a/src/string.js
+++ b/src/string.js
@@ -914,6 +914,9 @@ function ReplaceResultBuilder(str) {
   this.special_string = str;
 }

+ReplaceResultBuilder.prototype.elements = null;
+ReplaceResultBuilder.prototype.special_string = null;
+

 ReplaceResultBuilder.prototype.add = function(str) {
   str = TO_STRING_INLINE(str);
Index: src/v8natives.js
diff --git a/src/v8natives.js b/src/v8natives.js
index 9d57a7944af0a43ff13f2d9f7e07a779259bf174..f1358a849a01584e09078f866363a8d7f2d6f7d5 100644
--- a/src/v8natives.js
+++ b/src/v8natives.js
@@ -461,6 +461,20 @@ function PropertyDescriptor() {
   this.hasSetter_ = false;
 }

+PropertyDescriptor.prototype.value_ = null;
+PropertyDescriptor.prototype.hasValue_ = null;
+PropertyDescriptor.prototype.writable_ = null;
+PropertyDescriptor.prototype.hasWritable_ = null;
+PropertyDescriptor.prototype.enumerable_ = null;
+PropertyDescriptor.prototype.hasEnumerable_ = null;
+PropertyDescriptor.prototype.configurable_ = null;
+PropertyDescriptor.prototype.hasConfigurable_ = null;
+PropertyDescriptor.prototype.get_ = null;
+PropertyDescriptor.prototype.hasGetter_ = null;
+PropertyDescriptor.prototype.set_ = null;
+PropertyDescriptor.prototype.hasSetter_ = null;
+
+
 PropertyDescriptor.prototype.__proto__ = null;
 PropertyDescriptor.prototype.toString = function() {
   return "[object PropertyDescriptor]";


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to