| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 /** | 5 /** |
| 6 * This file is an "idl" style description of the summary format. It is not | 6 * This file is an "idl" style description of the summary format. It is not |
| 7 * executed directly; instead it is parsed and transformed into code that | 7 * executed directly; instead it is parsed and transformed into code that |
| 8 * implements the summary format. | 8 * implements the summary format. |
| 9 * | 9 * |
| 10 * The code generation process introduces the following non-typical semantics: | 10 * The code generation process introduces the following non-typical semantics: |
| (...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 * Push the value of the n-th constructor argument (where n is obtained from | 503 * Push the value of the n-th constructor argument (where n is obtained from |
| 504 * [UnlinkedConst.ints]) onto the stack. | 504 * [UnlinkedConst.ints]) onto the stack. |
| 505 */ | 505 */ |
| 506 pushArgument, | 506 pushArgument, |
| 507 | 507 |
| 508 /** | 508 /** |
| 509 * Push the next value from [UnlinkedConst.ints] (a 32-bit unsigned integer) | 509 * Push the next value from [UnlinkedConst.ints] (a 32-bit unsigned integer) |
| 510 * onto the stack. | 510 * onto the stack. |
| 511 * | 511 * |
| 512 * Note that Dart supports integers larger than 32 bits; these are | 512 * Note that Dart supports integers larger than 32 bits; these are |
| 513 * represented by composing 32 bit values using the [shiftOr] operation. | 513 * represented by composing 32-bit values using the [pushLongInt] operation. |
| 514 */ | 514 */ |
| 515 pushInt, | 515 pushInt, |
| 516 | 516 |
| 517 /** | 517 /** |
| 518 * Pop the top value off the stack, which should be an integer. Multiply it | 518 * Get the number of components from [UnlinkedConst.ints], then do this number |
| 519 * by 2^32, "or" in the next value from [UnlinkedConst.ints] (which is | 519 * of times the following operations: multiple the current value by 2^32, "or" |
| 520 * interpreted as a 32-bit unsigned integer), and push the result back onto | 520 * it with the next value in [UnlinkedConst.ints]. The initial value is zero. |
| 521 * the stack. | 521 * Push the result into the stack. |
| 522 */ | 522 */ |
| 523 shiftOr, | 523 pushLongInt, |
| 524 | 524 |
| 525 /** | 525 /** |
| 526 * Push the next value from [UnlinkedConst.doubles] (a double precision | 526 * Push the next value from [UnlinkedConst.doubles] (a double precision |
| 527 * floating point value) onto the stack. | 527 * floating point value) onto the stack. |
| 528 */ | 528 */ |
| 529 pushDouble, | 529 pushDouble, |
| 530 | 530 |
| 531 /** | 531 /** |
| 532 * Push the constant `true` onto the stack. | 532 * Push the constant `true` onto the stack. |
| 533 */ | 533 */ |
| (...skipping 13 matching lines...) Expand all Loading... |
| 547 * Pop the top n values from the stack (where n is obtained from | 547 * Pop the top n values from the stack (where n is obtained from |
| 548 * [UnlinkedConst.ints]), convert them to strings (if they aren't already), | 548 * [UnlinkedConst.ints]), convert them to strings (if they aren't already), |
| 549 * concatenate them into a single string, and push it back onto the stack. | 549 * concatenate them into a single string, and push it back onto the stack. |
| 550 * | 550 * |
| 551 * This operation is used to represent constants whose value is a literal | 551 * This operation is used to represent constants whose value is a literal |
| 552 * string containing string interpolations. | 552 * string containing string interpolations. |
| 553 */ | 553 */ |
| 554 concatenate, | 554 concatenate, |
| 555 | 555 |
| 556 /** | 556 /** |
| 557 * Pop the top value from the stack which should be string, convert it to | 557 * Get the next value from [UnlinkedConst.strings], convert it to a symbol, |
| 558 * a symbol, and push it back onto the stack. | 558 * and push it onto the stack. |
| 559 */ | 559 */ |
| 560 makeSymbol, | 560 makeSymbol, |
| 561 | 561 |
| 562 /** | 562 /** |
| 563 * Push the constant `null` onto the stack. | 563 * Push the constant `null` onto the stack. |
| 564 */ | 564 */ |
| 565 pushNull, | 565 pushNull, |
| 566 | 566 |
| 567 /** | 567 /** |
| 568 * Evaluate a (potentially qualified) identifier expression and push the | 568 * Evaluate a (potentially qualified) identifier expression and push the |
| (...skipping 894 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1463 int propagatedTypeSlot; | 1463 int propagatedTypeSlot; |
| 1464 | 1464 |
| 1465 /** | 1465 /** |
| 1466 * If this variable is inferrable, nonzero slot id identifying which entry in | 1466 * If this variable is inferrable, nonzero slot id identifying which entry in |
| 1467 * [LinkedLibrary.types] contains the inferred type for this variable. If | 1467 * [LinkedLibrary.types] contains the inferred type for this variable. If |
| 1468 * there is no matching entry in [LinkedLibrary.types], then no type was | 1468 * there is no matching entry in [LinkedLibrary.types], then no type was |
| 1469 * inferred for this variable, so its static type is `dynamic`. | 1469 * inferred for this variable, so its static type is `dynamic`. |
| 1470 */ | 1470 */ |
| 1471 int inferredTypeSlot; | 1471 int inferredTypeSlot; |
| 1472 } | 1472 } |
| OLD | NEW |