original_string: function get_font_size()
      {
  
          if ($this->__font_size_calculated) {
              return $this->_props["font_size"];
          }
  
          if (!isset($this->_props["font_size"])) {
              $fs = self::$_defaults["font_size"];
          } else {
              $fs = $this->_props["font_size"];
          }
  
          if (!isset($this->_parent_font_size)) {
              $this->_parent_font_size = self::$default_font_size;
          }
  
          switch ((string)$fs) {
              case "xx-small":
              case "x-small":
              case "small":
              case "medium":
              case "large":
              case "x-large":
              case "xx-large":
                  $fs = self::$default_font_size * self::$font_size_keywords[$fs];
                  break;
  
              case "smaller":
                  $fs = 8 / 9 * $this->_parent_font_size;
                  break;
  
              case "larger":
                  $fs = 6 / 5 * $this->_parent_font_size;
                  break;
  
              default:
                  break;
          }
  
          // Ensure relative sizes resolve to something
          if (($i = mb_strpos($fs, "em")) !== false) {
              $fs = (float)mb_substr($fs, 0, $i) * $this->_parent_font_size;
          } else if (($i = mb_strpos($fs, "ex")) !== false) {
              $fs = (float)mb_substr($fs, 0, $i) * $this->_parent_font_size;
          } else {
              $fs = (float)$this->length_in_pt($fs);
          }
  
          //see __set and __get, on all assignments clear cache!
          $this->_prop_cache["font_size"] = null;
          $this->_props["font_size"] = $fs;
          $this->__font_size_calculated = true;
          return $this->_props["font_size"];
  
      }
code: function get_font_size()
      {
  
          if ($this->__font_size_calculated) {
              return $this->_props["font_size"];
          }
  
          if (!isset($this->_props["font_size"])) {
              $fs = self::$_defaults["font_size"];
          } else {
              $fs = $this->_props["font_size"];
          }
  
          if (!isset($this->_parent_font_size)) {
              $this->_parent_font_size = self::$default_font_size;
          }
  
          switch ((string)$fs) {
              case "xx-small":
              case "x-small":
              case "small":
              case "medium":
              case "large":
              case "x-large":
              case "xx-large":
                  $fs = self::$default_font_size * self::$font_size_keywords[$fs];
                  break;
  
              case "smaller":
                  $fs = 8 / 9 * $this->_parent_font_size;
                  break;
  
              case "larger":
                  $fs = 6 / 5 * $this->_parent_font_size;
                  break;
  
              default:
                  break;
          }
  
          // Ensure relative sizes resolve to something
          if (($i = mb_strpos($fs, "em")) !== false) {
              $fs = (float)mb_substr($fs, 0, $i) * $this->_parent_font_size;
          } else if (($i = mb_strpos($fs, "ex")) !== false) {
              $fs = (float)mb_substr($fs, 0, $i) * $this->_parent_font_size;
          } else {
              $fs = (float)$this->length_in_pt($fs);
          }
  
          //see __set and __get, on all assignments clear cache!
          $this->_prop_cache["font_size"] = null;
          $this->_props["font_size"] = $fs;
          $this->__font_size_calculated = true;
          return $this->_props["font_size"];
  
      }
code_tokens: function get_font_size ( ) { if ( $ this -> __font_size_calculated ) { return $ this -> _props [ "font_size" ] ; } if ( ! isset ( $ this -> _props [ "font_size" ] ) ) { $ fs = self :: $ _defaults [ "font_size" ] ; } else { $ fs = $ this -> _props [ "font_size" ] ; } if ( ! isset ( $ this -> _parent_font_size ) ) { $ this -> _parent_font_size = self :: $ default_font_size ; } switch ( ( string ) $ fs ) { case "xx-small" : case "x-small" : case "small" : case "medium" : case "large" : case "x-large" : case "xx-large" : $ fs = self :: $ default_font_size * self :: $ font_size_keywords [ $ fs ] ; break ; case "smaller" : $ fs = 8 / 9 * $ this -> _parent_font_size ; break ; case "larger" : $ fs = 6 / 5 * $ this -> _parent_font_size ; break ; default : break ; } // Ensure relative sizes resolve to something if ( ( $ i = mb_strpos ( $ fs , "em" ) ) !== false ) { $ fs = ( float ) mb_substr ( $ fs , 0 , $ i ) * $ this -> _parent_font_size ; } else if ( ( $ i = mb_strpos ( $ fs , "ex" ) ) !== false ) { $ fs = ( float ) mb_substr ( $ fs , 0 , $ i ) * $ this -> _parent_font_size ; } else { $ fs = ( float ) $ this -> length_in_pt ( $ fs ) ; } //see __set and __get, on all assignments clear cache! $ this -> _prop_cache [ "font_size" ] = null ; $ this -> _props [ "font_size" ] = $ fs ; $ this -> __font_size_calculated = true ; return $ this -> _props [ "font_size" ] ; }
docstring: Returns the resolved font size, in points
  
  @link http://www.w3.org/TR/CSS21/fonts.html#propdef-font-size
  @return float
docstring_tokens: Returns the resolved font size in points