Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: test/mjsunit/debug-liveedit-4.js

Issue 23783007: LiveEdit to mark more closure functions for re-instantiation when scope layout changes (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: rebase Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/liveedit-debugger.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 17 matching lines...) Expand all
28 // Flags: --expose-debug-as debug 28 // Flags: --expose-debug-as debug
29 // Get the Debug object exposed from the debug context global object. 29 // Get the Debug object exposed from the debug context global object.
30 30
31 // In this test case we edit a script so that techincally function text 31 // In this test case we edit a script so that techincally function text
32 // hasen't been changed. However actually function became one level more nested 32 // hasen't been changed. However actually function became one level more nested
33 // and must be recompiled because it uses variable from outer scope. 33 // and must be recompiled because it uses variable from outer scope.
34 34
35 35
36 Debug = debug.Debug 36 Debug = debug.Debug
37 37
38 var function_z_text =
39 " function Z() {\n"
40 + " return 2 + p;\n"
41 + " }\n";
42
43 eval( 38 eval(
44 "function Factory(p) {\n" 39 "function TestFunction() {\n"
45 + "return (\n" 40 + " var a = 'a';\n"
46 + function_z_text 41 + " var b = 'b';\n"
47 + ");\n" 42 + " var c = 'c';\n"
43 + " function A() {\n"
44 + " return 2013;\n"
45 + " }\n"
46 + " function B() {\n"
47 + " return String([a, c]);\n"
48 + " }\n"
49 + " return B();\n"
48 + "}\n" 50 + "}\n"
49 ); 51 );
50 52
51 var z6 = Factory(6); 53 var res = TestFunction();
52 assertEquals(8, z6()); 54 print(res);
55 assertEquals('a,c', res);
53 56
54 var script = Debug.findScript(Factory); 57 var script = Debug.findScript(TestFunction);
55 58 var new_source = script.source.replace("2013", "b");
56 var new_source = script.source.replace(function_z_text, "function Intermediate() {\nreturn (\n" + function_z_text + ")\n;\n}\n");
57 print("new source: " + new_source); 59 print("new source: " + new_source);
58
59 var change_log = new Array(); 60 var change_log = new Array();
60 var result = Debug.LiveEdit.SetScriptSource(script, new_source, false, change_lo g); 61 var result = Debug.LiveEdit.SetScriptSource(script, new_source, false, change_lo g);
62
61 print("Result: " + JSON.stringify(result) + "\n"); 63 print("Result: " + JSON.stringify(result) + "\n");
62 print("Change log: " + JSON.stringify(change_log) + "\n"); 64 print("Change log: " + JSON.stringify(change_log) + "\n");
63 65
64 assertEquals(8, z6()); 66 var res = TestFunction();
65 67 print(res);
66 var z100 = Factory(100)(); 68 // This might be 'a,b' without a bug fixed.
67 69 assertEquals('a,c', res);
68 assertEquals(102, z100());
69
70
OLDNEW
« no previous file with comments | « src/liveedit-debugger.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698