Reviewed by Darin
authorkdecker <kdecker@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 22 Jul 2004 23:30:52 +0000 (23:30 +0000)
committerkdecker <kdecker@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 22 Jul 2004 23:30:52 +0000 (23:30 +0000)
Fixed <rdar://problem/3682340> (error console does not include source urls or line numbers of event exceptions).

        * kjs/function_object.cpp:
        (FunctionObjectImp::construct):
        * kjs/function_object.h:
        * kjs/object.cpp:
        (KJS::ObjectImp::construct):
        * kjs/object.h:
        (KJS::Object::construct):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7105 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/kjs/function_object.cpp
JavaScriptCore/kjs/function_object.h
JavaScriptCore/kjs/object.cpp
JavaScriptCore/kjs/object.h

index 86776f5516373572237ad84b6f27d229627b1825..6d9c5837b1125271f122e313f3555fb622e41077 100644 (file)
@@ -1,3 +1,17 @@
+2004-07-22  Kevin Decker  <kdecker@apple.com>
+
+        Reviewed by Darin
+       
+       Fixed <rdar://problem/3682340> (error console does not include source urls or line numbers of event exceptions). 
+
+        * kjs/function_object.cpp:
+        (FunctionObjectImp::construct):
+        * kjs/function_object.h:
+        * kjs/object.cpp:
+        (KJS::ObjectImp::construct):
+        * kjs/object.h:
+        (KJS::Object::construct):
+
 2004-07-21  Darin Adler  <darin@apple.com>
 
         * bindings/npruntime.h: Fixed typo.
index ecbbd4700f37e6297f1cf5fd1007fe65cba4c70c..ea32f9da5846212b70ae59f763fa0ae174113c2b 100644 (file)
@@ -191,7 +191,7 @@ bool FunctionObjectImp::implementsConstruct() const
 }
 
 // ECMA 15.3.2 The Function Constructor
-Object FunctionObjectImp::construct(ExecState *exec, const List &args)
+Object FunctionObjectImp::construct(ExecState *exec, const List &args, const UString &sourceURL, int lineNumber)
 {
   UString p("");
   UString body;
@@ -211,7 +211,7 @@ Object FunctionObjectImp::construct(ExecState *exec, const List &args)
   int sid;
   int errLine;
   UString errMsg;
-  ProgramNode *progNode = Parser::parse(UString(), 0, body.data(),body.size(),&sid,&errLine,&errMsg);
+  ProgramNode *progNode = Parser::parse(sourceURL, lineNumber, body.data(),body.size(),&sid,&errLine,&errMsg);
 
   // notify debugger that source has been parsed
   Debugger *dbg = exec->dynamicInterpreter()->imp()->debugger();
@@ -285,6 +285,13 @@ Object FunctionObjectImp::construct(ExecState *exec, const List &args)
   return ret;
 }
 
+// ECMA 15.3.2 The Function Constructor
+Object FunctionObjectImp::construct(ExecState *exec, const List &args)
+{
+  return FunctionObjectImp::construct(exec, args, UString(), 0);
+}
+
+
 bool FunctionObjectImp::implementsCall() const
 {
   return true;
index 32d86c9030f1085484aab04929bbdb5f70e18610..ade8a59eb1f27c322f4b746aed35693e2b39c466 100644 (file)
@@ -73,6 +73,7 @@ namespace KJS {
     virtual ~FunctionObjectImp();
 
     virtual bool implementsConstruct() const;
+    virtual Object construct(ExecState *exec, const List &args, const UString &sourceURL, int lineNumber);
     virtual Object construct(ExecState *exec, const List &args);
     virtual bool implementsCall() const;
     virtual Value call(ExecState *exec, Object &thisObj, const List &args);
index dae2de6a1c94dcae326769e7b8778f78693f09e3..b09acfc3cfa288b36b89dcffe0d9c63eaebfd1db 100644 (file)
@@ -368,6 +368,11 @@ Object ObjectImp::construct(ExecState */*exec*/, const List &/*args*/)
   return Object(0);
 }
 
+Object ObjectImp::construct(ExecState *exec, const List &args, const UString &/*sourceURL*/, int /*lineNumber*/)
+{
+  return construct(exec, args);
+}
+
 bool ObjectImp::implementsCall() const
 {
   return false;
index 4b1efbb91b1329c9062d86e2c29ca27d5caacf88..64a076a0afbb7dba9585fff2aae47549af687778 100644 (file)
@@ -244,6 +244,7 @@ namespace KJS {
      * @return The newly created &amp; initialized object
      */
     Object construct(ExecState *exec, const List &args);
+    Object construct(ExecState *exec, const List &args, const UString &sourceURL, int lineNumber);
 
     /**
      * Whether or not the object implements the call() method. If this returns
@@ -547,6 +548,7 @@ namespace KJS {
      * @see Object::construct()
      */
     virtual Object construct(ExecState *exec, const List &args);
+    virtual Object construct(ExecState *exec, const List &args, const UString &sourceURL, int lineNumber);
 
     virtual bool implementsCall() const;
     /**
@@ -694,6 +696,9 @@ namespace KJS {
 
   inline Object Object::construct(ExecState *exec, const List &args)
     { return imp()->construct(exec,args); }
+  
+  inline Object Object::construct(ExecState *exec, const List &args, const UString &sourceURL, int lineNumber)
+  { return imp()->construct(exec,args,sourceURL,lineNumber); }
 
   inline bool Object::implementsCall() const
     { return imp()->implementsCall(); }