kmillikin@google.com
3fb8b5985e
Ensure that outgoing constant arguments will be materialized.
...
This keeps the IL simple for the benefit of the optimizing compiler.
It intentionally relies on a particular temporary allocation strategy
for the non-optimizing compiler.
For the dart function
main() {
var x = 2;
hukairs(1, x, 3);
}
The flow graph is:
0: [target]
StoreLocal(x, #2 )
t0 <-#1
t1 <-LoadLocal(x)
t2 <-#3
StaticCall(hukairs, t0, t1, t2)
return #null
R=srdjan@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9463007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4600 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-27 08:04:24 +00:00
kmillikin@google.com
7fd32d779b
Incorporate some review comments.
...
Clean up a couple of style TODOs from an earlier review.
R=srdjan@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9455054
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4599 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-27 07:56:37 +00:00
hausner@google.com
eff1a31d6f
Fixing bugs: 1612, 1843, 1847
...
- Fix error location when referring to types in object allocation.
- Handle CR/LF correctly at beginning of source.
- Detect duplicate identifier in typedef declaration.
Review URL: https://chromiumcodereview.appspot.com//9466030
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4584 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-25 00:47:06 +00:00
srdjan@google.com
a343a49338
Do not count invocations but usage of a function, i.e., increment a function's counter at IC calls and at return operations in unoptimized code. (TODO: increment count at static calls as well). There is no checking at method entry any more. The function counter reporting is not measuring the invocation count but much more how much time we spend in a method. Removed counter at backward branches.
...
Renamed flags to:
--optimization_counter_threshold (default 2000)
--report_usage_count
Review URL: https://chromiumcodereview.appspot.com//9460015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4583 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-25 00:33:25 +00:00
srdjan@google.com
1eaef108b9
Move CodeGenerator::DescriptorList into shared part.
...
Review URL: https://chromiumcodereview.appspot.com//9465028
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4582 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-24 23:27:24 +00:00
srdjan@google.com
397f15c454
Added LoadLiteralComp, StrictCompareComp; implement InstanceCallNode.
...
Review URL: https://chromiumcodereview.appspot.com//9456033
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4580 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-24 22:37:57 +00:00
asiva@google.com
dfdbec210a
Fix build break.
...
TBR=srdjan
Review URL: https://chromiumcodereview.appspot.com//9455032
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4556 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 23:43:14 +00:00
asiva@google.com
26d2689283
Change the generated dart test in CodeIndexTableTest so that it does not induce a deep recursion in the dart code generator.
...
Review URL: https://chromiumcodereview.appspot.com//9454024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4555 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 23:01:45 +00:00
srdjan@google.com
e8114222fe
New compiler, intermediate language, type testing and casting changes as agreed with Kevin.
...
Review URL: https://chromiumcodereview.appspot.com//9454022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4554 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 22:51:18 +00:00
srdjan@google.com
e6d87ec63f
When tracing type checks in runtime, also print the method where the type check occured.
...
Review URL: https://chromiumcodereview.appspot.com//9447028
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4551 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 20:03:02 +00:00
hausner@google.com
1ecc0a9e97
Fix handling of unresolved names
...
Fixes issue 1805 (http://code.google.com/p/dart/issues/detail?id=1805 )
The VM didn't turn unresolved identifiers into instance getter calls in all cases. Refactored the code that handles primary expressions.
Review URL: https://chromiumcodereview.appspot.com//9453020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4550 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 19:55:57 +00:00
srdjan@google.com
e3c98a5e19
Enable new compiler in x64 mode (bail-out all the time, but we can use automated testing).
...
Disable CodeIndexTable test inde debug x64. This CL includes a pending CL from Kevin (will wait for it to be submitted).
Review URL: https://chromiumcodereview.appspot.com//9443021
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4549 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 19:24:14 +00:00
kmillikin@google.com
023b02d54c
Implement a simple InstructionVisitor class.
...
The instruction visitor visits each block and for each block each
instruction. Rewrite the instruction printing code to use this new
visitor.
R=srdjan@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9453014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4547 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 18:29:58 +00:00
kmillikin@google.com
164832b3a3
Add type testing and casting support.
...
Introduce a virtual tag() function to Instruction classes, use it to
implement type testing and casting. Use type testing and casting to
eliminate some virtual functions on the instruction classes.
R=srdjan@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9454012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4546 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 18:15:11 +00:00
kmillikin@google.com
131632ab24
Fix a pair of bugs in the translation of 'if' nodes.
...
The condition graph fragment was appended twice, and the join did not
properly handle the case of nonlocal exits from the arms of the 'if'.
R=srdjan@google.com
BUG=
TEST=all tests pass in x64 release mode with --use_new_compiler
Review URL: https://chromiumcodereview.appspot.com//9456009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4545 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 18:09:44 +00:00
srdjan@google.com
d89a53417b
Added LongJump for bailout. When trying to fix all crashes, CHECK_ALIVE did not scale well as bailing out mechanism.
...
Implemented UnaryOpNode. Fix crashes.
(this CL also includes the patches from https://chromiumcodereview.appspot.com/9429056/ , will remove them once syncing with submitted 9429056)
Review URL: https://chromiumcodereview.appspot.com//9443002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4541 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 16:14:01 +00:00
sgjesse@google.com
5a38a88099
Port async file operations to be using native ports instead or an isolate
...
R=ager@google.com
Review URL: https://chromiumcodereview.appspot.com//9415043
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4520 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 11:11:48 +00:00
kmillikin@google.com
392cdd56ef
Recognize basic block entries in the flow graph.
...
Also, instead of keeping a list of all instructions, keep a list of only
block entries. The printing implementation is changed (for the better) to
use the new representation. With --use_new_compiler and --print_flow_graph
the function:
main() {
var f = 1;
var n = 5;
while (n > 0) {
f = f * n;
n = n - 1;
}
print(f);
}
prints as:
0: [target]
StoreLocal(f, #1 )
StoreLocal(n, #5 ) goto 1
1: [join]
t0 <-LoadLocal(n)
t0 <-InstanceCall(>, t0, #0 )
if t0 goto(2, 3)
2: [target]
t0 <-LoadLocal(f)
t1 <-LoadLocal(n)
t0 <-InstanceCall(*, t0, t1)
StoreLocal(f, t0)
t0 <-LoadLocal(n)
t0 <-InstanceCall(-, t0, #1 )
StoreLocal(n, t0) goto 1
3: [target]
t0 <-LoadLocal(f)
StaticCall(print, t0)
return #null
R=srdjan@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9429056
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4515 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-23 09:09:45 +00:00
srdjan@google.com
a396e575ee
Fix Issue 1804: Forgot to rename one virtual function.
...
Review URL: https://chromiumcodereview.appspot.com//9429072
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4503 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 22:41:56 +00:00
iposva@google.com
f0c1954e9b
Fix issue 732:
...
- Add handling for #resource library tags: Ignore at runtime, they are only used
by the Dart Editor at the moment.
Review URL: https://chromiumcodereview.appspot.com//9431038
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4493 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 21:40:07 +00:00
regis@google.com
1442b01a25
Fix typo in --verify_implements functionality (issue 1291).
...
Review URL: https://chromiumcodereview.appspot.com//9433047
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4481 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 18:42:09 +00:00
srdjan@google.com
251439618f
Disable invocation of otpimizing compiler on x64 regardless of optimization_invocation_threshold value.
...
Review URL: https://chromiumcodereview.appspot.com//9431036
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4478 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 17:54:57 +00:00
regis@google.com
25fcaf5044
Generic bound errors are static type errors not to be reported by the VM.
...
Review URL: https://chromiumcodereview.appspot.com//9428015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4476 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 17:48:05 +00:00
kmillikin@google.com
552825c221
Required rename on x64 platform.
...
Due to a name clash, rename class Instruction => InstructionPattern.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9429055
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4466 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 16:38:56 +00:00
kmillikin@google.com
41e77a0a9e
Initial implementation of a flow-graph builder for Dart's AST.
...
Visit the AST and generate an instruction (ie, not basic-block) flow
graph.
The flow graph for the simple function:
main() {
var f = 1;
var n = 5;
while (n > 0) {
f = f * n;
n = n - 1;
}
print(f);
}
is:
1: StoreLocal(f, #1 )
2: StoreLocal(n, #5 )
3: [join]
4: t0 <-LoadLocal(n)
5: t0 <-InstanceCall(>, t0, #0 )
6: if t0 goto(7, 15)
7: [target]
8: t0 <-LoadLocal(f)
9: t1 <-LoadLocal(n)
10: t0 <-InstanceCall(*, t0, t1)
11: StoreLocal(f, t0)
12: t0 <-LoadLocal(n)
13: t0 <-InstanceCall(-, t0, #1 )
14: StoreLocal(n, t0) goto 3
15: [target]
16: t0 <-LoadLocal(f)
17: StaticCall(print, t0)
18: return #null
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9414003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4460 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 15:20:13 +00:00
cshapiro@google.com
fb485357cb
Thread the weak persistent handle free-list through the raw_ field.
...
As free-list pointers are either the address of the next free handle
or NULL, raw_ fields should conveniently appear as a smi and be
ignored during weak reference processing. Ordinary persistent handles
already reuse the raw_ field for this purpose and rely on confusing
free-list links with tagged smi values.
Of course, nothing strictly requires that the addresses of handles be
aligned in just the right way. So, just in case, new asserts check
that raw_ field values are not confusable with tagged heap addresses.
Review URL: https://chromiumcodereview.appspot.com//9413003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4423 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 03:52:12 +00:00
srdjan@google.com
a54f33bf92
ICData is now a wrapper object that refers to the calling function, target name, ic data array, etc. The old ICData C++ class that wrapped around an Array is removed. The advantage is that the ICData object remains the same, only its ic_data array object is being modified as classes are added..
...
TODO: store ICData-s into function so that the type feedback can be easily extracted (currently must traverse the unoptimized code).
Review URL: https://chromiumcodereview.appspot.com//9395016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4417 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 00:40:03 +00:00
iposva@google.com
a68ea7e455
- Windows only: Move the BN library link dependency into the standalone binaries.
...
Review URL: https://chromiumcodereview.appspot.com//9433021
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4416 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 00:36:14 +00:00
srdjan@google.com
87089f37f1
Fix cacthing exception object: a null exception is always caught.
...
Review URL: https://chromiumcodereview.appspot.com//9416067
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4411 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-21 22:07:59 +00:00
srdjan@google.com
acb395f713
Fix issue 979: operator arity must be verified.
...
Review URL: https://chromiumcodereview.appspot.com//9414005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4401 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-21 17:34:00 +00:00
sgjesse@google.com
6512d83d74
Move MessageWriter from snapshot files to dart_api_message files
...
Also renamed MessageWriter to ApiMessageWriter
R=asiva@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9407010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4375 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-18 10:10:28 +00:00
sgjesse@google.com
373074784d
Fix Windows build error
...
R=ricow@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9420044
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4349 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-17 07:54:51 +00:00
sgjesse@google.com
2df1d80a02
Add API function Dart_ZoneAllocate
...
This provides the embedder with the option for allocating temporary C
objects in the current ApiZone.
Zone allocation is especially useful when building a graph of
Dart_CObject structures for posting using Dart_PostCObject.
R=iposva@google.com , turnidge@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9347040
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4348 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-17 07:43:24 +00:00
iposva@google.com
9dc3d0f49d
- Add dart:json, dart:uri and dart:utf8 to the known and builtin libraries.
...
- Unify and simplify the building of the creation of the source file.
Review URL: https://chromiumcodereview.appspot.com//9417012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4336 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-16 19:59:19 +00:00
sigmund@google.com
427d5e5ead
remove promise:
...
- removes promise from corelib (use future instead)
- move tests that depend on promises and proxies into samples/proxy/
- remove dependence on promise from the rest of the system and tests
Review URL: https://chromiumcodereview.appspot.com//9401030
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4328 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-16 18:20:41 +00:00
srdjan@google.com
29da5d04f9
Fix rethrow by allowing exception object to be Null Object.
...
Review URL: https://chromiumcodereview.appspot.com//9416006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4303 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-16 09:07:32 +00:00
srdjan@google.com
edfe6db83f
Fix crash in assembler when tracing function (must be zone handle). Fixes bug 1709.
...
Review URL: https://chromiumcodereview.appspot.com//9415002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4302 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-16 08:42:00 +00:00
cshapiro@google.com
44daee3e6c
Ignore deleted handles when processing weak roots.
...
Previously, deleted weak persistent handles in live handle blocks were
always assumed live. With this change, dead handles are always ignored.
When a handle is deleted NULL is stored into the raw object member. This
looks like a Smi encoded 0. As the handle blocks do not otherwise encode
which elements are live in an allocated block, the garbage collector now
uses this signal to distinguish live handles from deleted handles.
BUG=1640
Review URL: https://chromiumcodereview.appspot.com//9398014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4291 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-15 20:56:15 +00:00
asiva@google.com
3983c61041
Implement capability to use the same library prefix for multiple library imports (currently this is flagged as an error).
...
e.g:
#import("mylib101.dart", prefix:"mylib");
#import("mylib102.dart", prefix:"mylib");
#import("mylib103.dart", prefix:"mylib");
Review URL: https://chromiumcodereview.appspot.com//9363048
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4289 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-15 20:53:28 +00:00
turnidge@google.com
5c9dbe6a05
Revert my last change. Windows dislikes long strings...
...
Review URL: https://chromiumcodereview.appspot.com//9407017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4281 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-15 19:25:22 +00:00
turnidge@google.com
7177dce4e9
Make gen files more human-readable by using a string initializer
...
instead of an integer array initializer.
For example, the initializer in builtin_gen.cc now looks something like this:
const char Builtin::builtin_source_[] =
// ----- bin/builtin.dart -----
"// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file\n"
"// for details. All rights reserved. Use of this source code is governed by a\n"
"// BSD-style license that can be found in the LICENSE file.\n"
"\n"
"#library(\"builtin\");\n"
"#import(\"dart:nativewrappers\");\n"
"#import(\"dart:coreimpl\");\n"
"\n"
"void print(arg) {\n"
" _Logger._printString(arg.toString());\n" /* L10 */
"}\n"
"\n"
"void exit(int status) {\n"
" if (status is !int) {\n"
" throw new IllegalArgumentException(\"int status expected\");\n"
" }\n"
" _exit(status);\n"
"}\n"
"\n"
"_exit(int status) native \"Exit\";\n" /* L20 */
"\n"
"class _Logger {\n"
" static void _printString(String s) native \"Logger_PrintString\";\n"
"}\n"
;
Review URL: https://chromiumcodereview.appspot.com//9348112
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4280 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-15 19:14:03 +00:00
cshapiro@google.com
bb7ee3d0fb
Add multi-byte ByteArray access methods to the Dart API.
...
Review URL: https://chromiumcodereview.appspot.com//9384027
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4244 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-15 02:51:11 +00:00
regis@google.com
83e063f330
Simplify type resolution in parser.
...
Review URL: https://chromiumcodereview.appspot.com//9395017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4240 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-15 00:44:16 +00:00
sgjesse@google.com
52187a22c0
Add missing backref collection when reading mint and bigint objects in a native message handler
...
R=asiva@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9372024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4228 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-14 15:26:01 +00:00
regis@google.com
5933826ae8
Fix context unchaining (issue 5991015).
...
Add test.
Review URL: https://chromiumcodereview.appspot.com//9392020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4201 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-14 00:58:56 +00:00
asiva@google.com
d50bbba277
Implement support for specifying string interopolation style variable substitution in the import and source statements.
...
e.g:
sivamach[runtime]>more /workspace/asiva/expr/test1.dart
#library('test1.dart');
#import('${GOOGLE}$SRC/test2.dart');
#import('$DART/test3.dart');
test1() {
print("test1");
}
main() {
test1();
test2();
test3();
}
sivamach[runtime]>more /workspace/asiva/expr/src/test2.dart
#library('test2.dart');
#source('$GOOGLE$SRC/test2a.dart');
test2() {
print("test2");
test2a();
}
sivamach[runtime]>more /workspace/asiva/expr/src/test2a.dart
test2a() {
print("test2a");
}
sivamach[runtime]>more /workspace/asiva/expr/src/test3.dart
#library('test3.dart');
#source('test3a.dart');
test3() {
print("test3");
test3a();
}
sivamach[runtime]>more /workspace/asiva/expr/src/test3a.dart
test3a() {
print("test3a");
}
sivamach[runtime]>out/Debug_ia32/dart --import_map=GOOGLE,/workspace/asiva/expr --import_map=SRC,src --import_map=DART,/workspace/asiva/expr/src /workspace/asiva/expr/test1.dart
test1
test2
test2a
test3
test3a
Review URL: https://chromiumcodereview.appspot.com//9359009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4199 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-13 22:50:19 +00:00
srdjan@google.com
99edfad378
Print top level functions as well when reproting invocation count.
...
Review URL: https://chromiumcodereview.appspot.com//9390001
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4187 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-13 14:23:10 +00:00
srdjan@google.com
c95d58ef9f
Intrinsify InternalByteArray's get_length and [].
...
Disallow intrinsification of non-corelib methods. Recognize private classes for intrinsification.
Review URL: https://chromiumcodereview.appspot.com//9383004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4171 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-12 07:10:09 +00:00
cshapiro@google.com
e8f396df7e
Add external byte array API and finalize external strings and byte arrays.
...
This change adds peer and callback arguments to the external byte array
constructor and moves the peer, callback, and data storage into a VM
peer object. At construction time, a weak persistent handle and VM
callback is associated with the VM peer. The VM callback will delete
the VM peer and invokes the user callback to reclaim the user peer.
This change also activates the callback support for the various classes of
external strings.
Review URL: https://chromiumcodereview.appspot.com//9368049
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4164 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-11 04:34:44 +00:00
hausner@google.com
4d3a5f658a
Add PC descriptor for ret instruction
...
Adding a new kind of PcDescriptor to mark the location of
function returns in generated code. This will be needed to
put a single-step breakpoint just before the function return.
Also adding a NOP instruction after the ret, so that the
function return code pattern adds up to 5 bytes, which is needed
to patch in a breakpoint call.
Review URL: https://chromiumcodereview.appspot.com//9385022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4159 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-11 01:02:09 +00:00