```/* <![CDATA[ */
function get_sym_list(){return [["Variable","xv",[["Base",8],["Return",17],["Unit",7],["i",23]]],["Function","xf",[["ms-pow",3]]]];} /* ]]> */1// If a native exponent function doesnt exist
2// this one is needed.
3@function ms-pow(\$Base, \$Exponent) {
4
5  // Find and remove unit.
6  // Avoids messyness with unit calculations
7  \$Unit: \$Base * 0 + 1;
8  \$Base: \$Base/\$Unit;
9
10  // This function doesnt support non-interger exponents.
11  // Warn the user about why this is breaking.
12	@if round(\$Exponent) != \$Exponent {
13		@warn "Unfortunately, you need Compass to use non-integer exponents";
14	}
15
16  // Set up the loop, priming the return with the base.
17	\$Return: \$Base;
18
19  // If the number is positive, multiply it.
20  @if \$Exponent > 0 {
21    // Basic feedback loop as exponents
22    // are recursivley multiplied numbers.
23    @for \$i from 1 to \$Exponent {
24      \$Return: \$Return * \$Base;
25    }
26  }
27
28  // If the number is 0 or negitive
29  // divide instead of multiply.
30  @else {
31    // Libsass doesnt allow negitive values in loops
32    @for \$i from (-1 + 1) to (abs(\$Exponent) + 1) {
33      \$Return: \$Return / \$Base;
34    }
35  }
36
37  // Return is now compounded redy to be returned.
38  // Add the unit back onto the number.
39	@return \$Return * \$Unit;
40}```