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

Side by Side Diff: runtime/vm/debugger_api_impl_test.cc

Issue 25284003: Fix expression evaluation in library context (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 2 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 | « runtime/vm/debugger_api_impl.cc ('k') | runtime/vm/parser.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "include/dart_debugger_api.h" 5 #include "include/dart_debugger_api.h"
6 #include "include/dart_mirrors_api.h" 6 #include "include/dart_mirrors_api.h"
7 #include "platform/assert.h" 7 #include "platform/assert.h"
8 #include "vm/dart_api_impl.h" 8 #include "vm/dart_api_impl.h"
9 #include "vm/thread.h" 9 #include "vm/thread.h"
10 #include "vm/unit_test.h" 10 #include "vm/unit_test.h"
(...skipping 1565 matching lines...) Expand 10 before | Expand all | Expand 10 after
1576 NewString("(() => _factor * sqrt(x*x + y*y))()")); 1576 NewString("(() => _factor * sqrt(x*x + y*y))()"));
1577 EXPECT_VALID(r); 1577 EXPECT_VALID(r);
1578 EXPECT(Dart_IsDouble(r)); 1578 EXPECT(Dart_IsDouble(r));
1579 EXPECT_EQ(50.0, ToDouble(r)); 1579 EXPECT_EQ(50.0, ToDouble(r));
1580 1580
1581 Dart_Handle len = Dart_EvaluateExpr(point, NewString("l.length")); 1581 Dart_Handle len = Dart_EvaluateExpr(point, NewString("l.length"));
1582 EXPECT_VALID(len); 1582 EXPECT_VALID(len);
1583 EXPECT(Dart_IsNumber(len)); 1583 EXPECT(Dart_IsNumber(len));
1584 EXPECT_EQ(3, ToInt64(len)); 1584 EXPECT_EQ(3, ToInt64(len));
1585 1585
1586 Dart_Handle point_class = Dart_GetClass(script_lib, NewString("Point")); 1586 Dart_Handle point_type =
1587 EXPECT_VALID(point_class); 1587 Dart_GetType(script_lib, NewString("Point"), 0, NULL);
1588 Dart_Handle elem = Dart_EvaluateExpr(point_class, NewString("m['\"']")); 1588 EXPECT_VALID(point_type);
1589 EXPECT(Dart_IsType(point_type));
1590 Dart_Handle elem = Dart_EvaluateExpr(point_type, NewString("m['\"']"));
1589 EXPECT_VALID(elem); 1591 EXPECT_VALID(elem);
1590 EXPECT(Dart_IsString(elem)); 1592 EXPECT(Dart_IsString(elem));
1591 EXPECT_STREQ("quote", ToCString(elem)); 1593 EXPECT_STREQ("quote", ToCString(elem));
1592 1594
1593 elem = Dart_EvaluateExpr(point_class, NewString("m[\"\\t\"]")); 1595 elem = Dart_EvaluateExpr(point_type, NewString("m[\"\\t\"]"));
1594 EXPECT_VALID(elem); 1596 EXPECT_VALID(elem);
1595 EXPECT(Dart_IsString(elem)); 1597 EXPECT(Dart_IsString(elem));
1596 EXPECT_STREQ("tab", ToCString(elem)); 1598 EXPECT_STREQ("tab", ToCString(elem));
1597 1599
1598 res = Dart_EvaluateExpr(script_lib, NewString("l..add(11)..add(-5)")); 1600 res = Dart_EvaluateExpr(script_lib, NewString("l..add(11)..add(-5)"));
1599 EXPECT_VALID(res); 1601 EXPECT_VALID(res);
1600 // List l now has 5 elements. 1602 // List l now has 5 elements.
1601 1603
1602 len = Dart_EvaluateExpr(script_lib, NewString("l.length + 1")); 1604 len = Dart_EvaluateExpr(script_lib, NewString("l.length + 1"));
1603 EXPECT_VALID(len); 1605 EXPECT_VALID(len);
1604 EXPECT(Dart_IsNumber(len)); 1606 EXPECT(Dart_IsNumber(len));
1605 EXPECT_EQ(6, ToInt64(len)); 1607 EXPECT_EQ(6, ToInt64(len));
1606 1608
1607 closure = Dart_EvaluateExpr(script_lib, NewString("(x) => l.length + x")); 1609 closure = Dart_EvaluateExpr(script_lib, NewString("(x) => l.length + x"));
1608 EXPECT_VALID(closure); 1610 EXPECT_VALID(closure);
1609 EXPECT(Dart_IsClosure(closure)); 1611 EXPECT(Dart_IsClosure(closure));
1610 Dart_Handle args[1] = { Dart_NewInteger(1) }; 1612 Dart_Handle args[1] = { Dart_NewInteger(1) };
1611 len = Dart_InvokeClosure(closure, 1, args); 1613 len = Dart_InvokeClosure(closure, 1, args);
1612 EXPECT_VALID(len); 1614 EXPECT_VALID(len);
1613 EXPECT(Dart_IsNumber(len)); 1615 EXPECT(Dart_IsNumber(len));
1614 EXPECT_EQ(6, ToInt64(len)); 1616 EXPECT_EQ(6, ToInt64(len));
1615 1617
1616 len = Dart_EvaluateExpr(script_lib, NewString("((x) => l.length + x)(1)")); 1618 len = Dart_EvaluateExpr(script_lib, NewString("((x) => l.length + x)(1)"));
1617 EXPECT_VALID(len); 1619 EXPECT_VALID(len);
1618 EXPECT(Dart_IsNumber(len)); 1620 EXPECT(Dart_IsNumber(len));
1619 EXPECT_EQ(6, ToInt64(len)); 1621 EXPECT_EQ(6, ToInt64(len));
1622
1623 Dart_Handle error =
1624 Dart_EvaluateExpr(script_lib, NewString("new NonexistingType()"));
1625 EXPECT(Dart_IsError(error));
1620 } 1626 }
1621 1627
1622 1628
1623 TEST_CASE(Debug_GetSupertype) { 1629 TEST_CASE(Debug_GetSupertype) {
1624 const char* kScriptChars = 1630 const char* kScriptChars =
1625 "class Test {\n" 1631 "class Test {\n"
1626 "}\n" 1632 "}\n"
1627 "class Test1 extends Test {\n" 1633 "class Test1 extends Test {\n"
1628 "}\n" 1634 "}\n"
1629 "class Test2<T> {\n" 1635 "class Test2<T> {\n"
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1759 1765
1760 Dart_Handle list_type = Dart_InstanceGetType(list_access_test_obj); 1766 Dart_Handle list_type = Dart_InstanceGetType(list_access_test_obj);
1761 Dart_Handle super_type = Dart_GetSupertype(list_type); 1767 Dart_Handle super_type = Dart_GetSupertype(list_type);
1762 EXPECT(!Dart_IsError(super_type)); 1768 EXPECT(!Dart_IsError(super_type));
1763 super_type = Dart_GetSupertype(super_type); 1769 super_type = Dart_GetSupertype(super_type);
1764 EXPECT(!Dart_IsError(super_type)); 1770 EXPECT(!Dart_IsError(super_type));
1765 EXPECT(super_type == Dart_Null()); 1771 EXPECT(super_type == Dart_Null());
1766 } 1772 }
1767 1773
1768 } // namespace dart 1774 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/debugger_api_impl.cc ('k') | runtime/vm/parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698